【问题标题】:drop down list Selected index changed event not working下拉列表选定的索引更改事件不起作用
【发布时间】:2015-01-31 17:29:49
【问题描述】:

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

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>

和 in.cs on page_load

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();
        }


    }

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

【问题讨论】:

  • 如果列表中只有一项,则不会触发该事件。如果您将列表下拉,但不选择其他项目,它将不会触发。它仅在所选索引更改时触发。
  • 删除OnSelectedIndexChanged 并重新创建,换句话说,将另一个事件分配给OnSelectedIndexChanged,即OnSelectedIndexChanged="ddlUserID_IndexChanged"
  • 你是否调试过你的代码,也许你在 selectedindexchanged 中执行查询时得到一个空表,因此你的 if 语句没有执行 d 因为它是假的。

标签: asp.net


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 2014-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多