下拉列表选定的索引更改事件不起作用

时间:2015-01-31 17:29:50

标签: asp.net

在我的表单上,我有一个下拉列表。我已经填写了页面加载事件的下拉列表。即使我已检查是否回发。我的下拉列表的自动回发属性是真的。但仍然事件没有触发。我必须在下拉列表中选中的索引更改的文本框中显示一些值。 我的设计代码如下:

enter code here


   <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
 <div>
        <table class="tblContentcss">
            <tr>
                <td class="tdContent1css">
                    <asp:Label runat="server" ID="lblUserRole" Text="Role"></asp:Label>
                </td>
                <td class="tdContent2css">
                    :
                </td>
                <td class="tdContent3css">
                    <asp:TextBox runat="server" ID="txtUserRole" Text="User" ReadOnly="true"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="tdContent1css">
                    <asp:Label runat="server" ID="lblUserID" Text="User ID"></asp:Label>
                </td>
                <td class="tdContent2css">
                    :
                </td>
                <td class="tdContent3css">
                    <asp:DropDownList ID="ddlUserID" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlUserID_SelectedIndexChanged">
                    </asp:DropDownList>
                </td>
            </tr>
            <tr>
                <td class="tdContent1css">
                    <asp:Label runat="server" ID="lblUserName" Text="User Name"></asp:Label>
                </td>
                <td class="tdContent2css">
                    :
                </td>
                <td class="tdContent3css">
                    <asp:TextBox runat="server" ID="txtUserName" AutoPostBack="true"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="tdContent1css">
                    <asp:Label runat="server" ID="lblUserPassword" Text="Password"></asp:Label>
                </td>
                <td class="tdContent2css">
                    :
                </td>
                <td class="tdContent3css">
                    <asp:TextBox runat="server" ID="txtPassword" TextMode="Password"></asp:TextBox>
                </td>
            </tr>
            <tr>
                <td class="tdContent1css">
                    <asp:Label runat="server" ID="Label1" Text="Password"></asp:Label>
                </td>
                <td class="tdContent2css">
                    :
                </td>
                <td class="tdContent3css">
                    <asp:Button runat="server" ID="btnSave" Text="Save" OnClick="btnSave_Click" />
                </td>
            </tr>
        </table>
    </div>
</asp:Content>

和page_load上的in.cs

protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                fillUserID();
            }
        }



protected void ddlUserID_SelectedIndexChanged(object sender, EventArgs e)
    {
        fillUserID();
        SqlConnection con = dal.GetConnection();
        dsUserName = new DataSet();
        query = "SELECT CUSTID,(FNAME+' '+MNAME+' '+LNAME) AS USERNAME FROM CUSTOMER where CUSTID=" + Convert.ToInt32(ddlUserID.SelectedValue) + "";
        dsUserName = dal.ReturnDataset(query, con);
        if (dsUserName.Tables.Count > 0 && dsUserName.Tables[0].Rows.Count > 0)
        {
            txtUserName.Text = dsUserName.Tables[0].Rows[0]["USERNAME"].ToString();
        }


    }

问题是什么,我没有得到。 建议我任何解决方案

1 个答案:

答案 0 :(得分:1)

当autopostback设置为True时,在呈现页面后,在下拉菜单的onchange事件(HTML中的SELECT)上添加一个javascript来触发回发,

呈现页面后查看源代码,并检查是否将JavaScript添加到下拉菜单的onchange事件中。

如果您要在后台代码的下拉列表的onchange事件中添加一些javascript,这也可能会阻止页面回发。

我是通过以下链接获得的:https://www.codeproject.com/Questions/138183/Drop-down-selected-index-change-event-not-working