【问题标题】:ASP.Net DropDownList SelectedIndexChanged Event fires but does nothingASP.Net DropDownList SelectedIndexChanged 事件触发但不执行任何操作
【发布时间】:2017-02-08 21:27:21
【问题描述】:

我有以下ASP.Net 代码:

code.aspx:

<asp:UpdatePanel ID="upMain" runat="server">
    <ContentTemplate>
        <table>
          <tr>
            <td>DropDownList One</td>
            <td>
                <asp:DropDownList ID="ddlOne" runat="server" AutoPostBack="true"
                    OnSelectedIndexChange="ddlOne_SelectedIndexChanged" />
            </td>
            <td>DropDownList Two</td>
            <td>
                <asp:DropDownList ID="ddlTwo" runat="server" />
            </td>
          </tr>
        </table>
    </ContentTemplate>
</asp:UpdatePanel>

code.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
       ddlTwo.Visible = false;
    }
}

protected void ddlOne_SelectedIndexChanged(object sender, EventArgs e)
{
    ddlTwo.Visible = true;
}

我的期望:

此代码应该使ddlTwoddlOne 的选定索引更改时可见。

实际发生的情况:

更改ddlOne 的索引后,ddlOne_SelectedIndexChanged 函数运行(使用调试进行测试),ddlTwo.Visible = true; 也运行,但是当我逐步完成该过程时,属性发生了变化,但功能结束的那一刻我想看看我的结果(即可见的ddlTwo 控件),没有结果。

如果有人能发现问题,请告诉我。 谢谢!

【问题讨论】:

  • 你用过脚本管理器吗?
  • 你可以试试upMain.Update() 吗?这是假设您更新面板的 UpdateMode 是有条件的。
  • @Imad 是的,我用过 ScriptManager
  • @GeraldGonzales 我只是试了一下,但没有任何改变。
  • 你也通过他的Page_Load调试过吗?我怀疑某些东西可能会触发两次对服务器的请求

标签: c# asp.net updatepanel dropdown selectedindexchanged


【解决方案1】:

试试

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="ddlOne" 
    EventName="SelectedIndexChanged" />
</Triggers>

内部更新面板。

【讨论】:

  • 我试了一下,还是得到了同样不想要的结果。
【解决方案2】:

改变这一行

OnSelectedIndexChange="ddlOne_SelectedIndexChanged"

OnSelectedIndexChanged="ddlOne_SelectedIndexChanged"

它应该可以工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多