【发布时间】:2013-07-17 09:16:53
【问题描述】:
我已经在我的网页中实现了一个下拉列表并将其绑定到我创建的数据源但无论我在页面中选择什么,dropdownlist.selectedItem 总是让我获得第一个元素,SelectedIndex 总是0. 我已将我的代码与其他示例签订了合同,但找不到原因。
这里是数据源创建和绑定的代码:
public void bindLanguage() {
DropDownList1.DataSource = CreateDataSource();
DropDownList1.DataTextField = "language";
DropDownList1.DataValueField = "value";
DropDownList1.DataBind();
}
public ICollection CreateDataSource()
{
string[] allLan = System.IO.File.ReadAllLines(MyGlobal.LanFile);
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("language", typeof(string)));
dt.Columns.Add(new DataColumn("value", typeof(string)));
foreach (string lan in allLan)
{
dr = dt.NewRow();
dr[0] = lan.Split(',')[0];
dr[1] = lan.Split(',')[1];
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
我在 page_load 中调用 bindLanguage()。
这是我的 aspx 中的代码:
<asp:DropDownList ID="DropDownList1" runat="server" ForeColor="Black">
</asp:DropDownList>
【问题讨论】:
-
你能显示用于检查 DropDownlist 的选定索引的代码吗?另请显示 Page_Load 事件的代码。这肯定是犯了一些错误。
-
在 Page_Load() 中检查 if(!IsPostBack){//your code}。希望它有效。
-
你是对的!我没有把我的方法调用放在 if(!IsPostBack){} 中,现在它可以工作了。谢谢你指出。你能把这个写成答案,以便我标记它吗?
标签: asp.net datasource html-select