我正在创建一个.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。
感谢任何帮助,如果我遗漏了某些东西也请告诉我,谢谢。
答案 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();
}