下拉列表未使用选定的选项c#

时间:2014-05-12 15:25:26

标签: c# drop-down-menu asp.net-4.5

我正在创建一个.NET 4.5站点,该站点使用下拉列表来选择用户名,然后用户在文本框中键入其id代码。然后,页面检查两个字段是否与xml文件中的值匹配,然后转到帐户页面。我的问题是下拉列表选择不会从加载的第一个选项中改变 这是页面填充下拉列表的xml文件,并检查信息。

    <?xml version="1.0" encoding="UTF-8"?>
<dataroot xmlns:od="urn:schemas-microsoft-com:officedata" generated="2014-05-09T14:35:34">
  <Staff>
    <IdCode>0200</IdCode>
    <Name id="0200">Doe, John</Name>
  </Staff>
  <Staff>
    <IdCode>0130</IdCode>
    <Name id="0130">Doe, Jane</Name>
  </Staff>
  <Staff>
    <IdCode>0000</IdCode>
    <Name id="0000">Admin, Admin</Name>
  </Staff>
</dataroot>

我使用此处使用的修改版本填充下拉列表 Populating dropdown from the XML in C#。 这是代码:

XDocument xdoc = XDocument.Load(Server.MapPath("Staff.xml"));
            var query = from xEle in xdoc.Descendants("Staff") select new ListItem(xEle.Element("Name").Value);

            DropDownList1.DataValueField = "value";
            DropDownList1.DataTextField = "text";
            DropDownList1.DataSource = query;
            DropDownList1.DataBind();

            userName = DropDownList1.SelectedItem.Text;

然后我使用&#34; dropdownlist1.SelectedItem.Text&#34;获取所选用户名,但它只返回xml文件顶部的选项,因此无论我选择什么,它都只返回Doe,John。

感谢任何帮助,如果我遗漏了某些东西也请告诉我,谢谢。

1 个答案:

答案 0 :(得分:0)

好像你错过了Page.IsPostBack

if(!IsPostBack)
{
      XDocument xdoc = XDocument.Load(Server.MapPath("Staff.xml"));
      var query = from xEle in xdoc.Descendants("Staff") select new ListItem(xEle.Element("Name").Value);   
      DropDownList1.DataValueField = "value";
      DropDownList1.DataTextField = "text";
      DropDownList1.DataSource = query;
      DropDownList1.DataBind();
}