我有多个这样的下拉列表
<asp:DropDownList ID="ddl1"
runat="server"
DataTextField="Text"
DataValueField="ValID"
AutoPostBack="true"
OnSelectedIndexChanged="ddl_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddl2"
runat="server"
DataTextField="Text"
DataValueField="ValID"
AutoPostBack="true"
OnSelectedIndexChanged="ddl_SelectedIndexChanged">
</asp:DropDownList>
这两个下拉列表都有不同的值集,它们是唯一的。我在ddl_SelectedIndexChanged功能上做了以下操作
DropDownList ddl = sender as DropDownList;
string selectedId = ddl.ID;
string selectedText = ddl.SelectedItem.Text;
当我在第一个下拉列表中选择值时,我得到正确的selectedId和selectedText。
我的问题: 当我选择第二个下拉列表时,selectedId是第二个下拉列表,但selectedText始终是第一个下拉列表的第一个值,它永远不会改变。我需要selectedText是我在第二个下拉列表中选择的项目。
有任何建议吗?
答案 0 :(得分:3)
将数据绑定到DropDownLists时,您必须将它们放在IsPostBack
支票内。
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddl1.DataSource = source;
ddl1.DataBind();
ddl2.DataSource = source;
ddl2.DataBind();
}
}
如果不这样做,SelectedIndexChanged
每次都会触发DropDownList,因为重新绑定数据将触发,因为上一个selecedindex被覆盖。