asp.net dropdownlist控件切换选项时,选项值不变

问题:通过datatable绑定dropdownlist的值,切换选项时,选择项的值不变。

前台代码:

        <asp:DropDownList ID="ddlModules" runat="server" OnSelectedIndexChanged="ddlModules_SelectedIndexChanged">
        </asp:DropDownList>

后台代码

        protected void ddlModules_SelectedIndexChanged(object sender, EventArgs e)
        {
            string text = this.ddlModules.SelectedItem.Text;
            string value = this.ddlModules.SelectedItem.Value;
        }

获取到的text始终是第一项的值。

 

已验证内容:

通过写死的方式绑定dropdownlist的值,切换选项时,选择项的值变化。

前台代码:

          <asp:DropDownList ID="DropDownList2" runat="server"  OnTextChanged="DropDownList2_SelectedIndexChanged">
                <asp:ListItem>全部</asp:ListItem>
                <asp:ListItem>咨询</asp:ListItem>
                <asp:ListItem>论坛</asp:ListItem>
        </asp:DropDownList>

切换时,selected属性会加在当前选择项上。

<select name="ctl00$ContentPlaceHolder1$DropDownList2" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder1$DropDownList2\',\'\')', 0)" id="ContentPlaceHolder1_DropDownList2" class="valid">
    <option value="全部">全部</option>
    <option selected="selected" value="咨询">咨询</option>
    <option value="论坛">论坛</option>
</select>

 

不明白,请求指导。

长风秋雁
浏览 680回答 4
4回答

一只甜甜圈

<asp:DropDownList ID="ddlModules" runat="server" OnSelectedIndexChanged="ddlModules_SelectedIndexChanged"> </asp:DropDownList> 在这里面加上一个autopostback=true应该是的 几年不写webform了,有个属性就是允许回调的。

狐的传说

谢谢!这个试过了,不行 前台都一模一样。后台绑定的是DataTable的数据,感觉就这是最主要的差别 DataTable dt = GetModulesDataTable(); ddlModules.DataSource = dt; ddlModules.DataTextField = "ModuleName"; ddlModules.DataValueField = "TableName"; ddlModules.DataBind();

www说

楼上正解.
打开App,查看更多内容
随时随地看视频慕课网APP