我正在使用ASP.NET 4.0。我在同一页面上有2 DropDownList
个,CascadingDropDown
(来自Ajax Control Toolkit)和UpdatePanel
。
下拉列表不在更新面板中,并且它们的功能正常工作(从DropDownList
中选择一个选项后,CascadingDropDown
执行其操作并更新第二个{{1} })。
更新面板只包含一个按钮和一个文本框。单击该按钮时,将使用事件处理程序在文本框中设置文本。
当带有下拉列表的代码部分被注释掉时,更新面板工作正常,但是一旦取消注释下拉菜单,单击该按钮就不再刷新文本框,也不会发回帖。
aspx页面:
DropDownList
背后的代码:
<asp:ScriptManager ID="scriptManager" runat="server">
</asp:ScriptManager>
<div>
<label for="<%= ddOne.ClientID %>" >DD one</label>
<asp:DropDownList ID="ddOne" runat="server">
<asp:ListItem Text="" Value="-1" />
<asp:ListItem Text="Option one" Value="1" />
<asp:ListItem Text="Option two" Value="2" />
<asp:ListItem Text="Option three" Value="3" />
</asp:DropDownList>
</div>
<ajaxToolkit:CascadingDropDown
ID="ccdOne"
runat="server"
ParentControlID="ddOne"
TargetControlID="ddTwo"
Category="Category"
ServicePath="SomeWebService.asmx"
ServiceMethod="SomeWebMethod"
EmptyText="None available"
EmptyValue="-1"
LoadingText="Loading..." />
<div>
<label for="<%= ddTwo.ClientID %>">DD two</label>
<asp:DropDownList ID="ddTwo" runat="server">
</asp:DropDownList>
</div>
<asp:UpdatePanel runat="server" ID="upPanelOne">
<ContentTemplate>
<asp:Button ID="aButton" runat="server" Text="Click me" onclick="aButton_Click" />
<asp:TextBox ID="txtOne" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
有什么想法吗?
备注:
protected void aButton_Click(object sender, EventArgs e)
{
txtOne.Text = "Hello world";
}
本身就可以正常使用
UpdatePanel
可以正常工作
如果DropDownList
与更新面板在同一页面上使用,但在更新面板中没有,则更新面板会停止工作吗?
答案 0 :(得分:0)
将以下标记添加到updatepanel
<Triggers>
<asp:AsyncPostBackTrigger ControlID="aButton" EventName="Click" /
</Triggers>
所以它应该是这样的:
<asp:UpdatePanel runat="server" ID="upPanelOne">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="aButton" EventName="Click" /
</Triggers>
<ContentTemplate>
<asp:Button ID="aButton" runat="server" Text="Click me" onclick="aButton_Click" />
<asp:TextBox ID="txtOne" runat="server" />
</ContentTemplate>
</asp:UpdatePanel>
答案 1 :(得分:0)
我遇到了同样的问题,但是我遵循了Ben的评论,该评论说明EnableEventValidation="false"
已经解决了我的问题并且现在工作正常。