如何获得Dropdown选择的文本,其中有多个下拉列表

时间:2017-12-07 07:41:52

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

我有多个这样的下拉列表

<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是我在第二个下拉列表中选择的项目。

有任何建议吗?

1 个答案:

答案 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被覆盖。