【发布时间】: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;
}
我的期望:
此代码应该使ddlTwo 在ddlOne 的选定索引更改时可见。
实际发生的情况:
更改ddlOne 的索引后,ddlOne_SelectedIndexChanged 函数运行(使用调试进行测试),ddlTwo.Visible = true; 也运行,但是当我逐步完成该过程时,属性发生了变化,但功能结束的那一刻我想看看我的结果(即可见的ddlTwo 控件),没有结果。
如果有人能发现问题,请告诉我。 谢谢!
【问题讨论】:
-
你用过脚本管理器吗?
-
你可以试试
upMain.Update()吗?这是假设您更新面板的 UpdateMode 是有条件的。 -
@Imad 是的,我用过 ScriptManager
-
@GeraldGonzales 我只是试了一下,但没有任何改变。
-
你也通过他的Page_Load调试过吗?我怀疑某些东西可能会触发两次对服务器的请求
标签: c# asp.net updatepanel dropdown selectedindexchanged