我很烦恼我在updatepanel中有转发器控制这样的问题。
<asp:UpdatePanel ID="UpdPnlConstituentRepeater" ChildrenAsTriggers="true" runat="server">
<ContentTemplate>
<asp:Repeater ID="repConstituentInformation" runat="server" OnItemDataBound="repConstituentInformation_ItemDataBound">
<ItemTemplate>
<asp:DropDownList ID="dropRegistrantDownCostType" runat="server" AppendDataBoundItems="true"
AutoPostBack="true" OnSelectedIndexChanged="dropRegistrantDownCostType_SelectedIndexChanged"
EnableViewState="true">
<asp:ListItem Text="Select Type" Value="0" Selected="True" />
</asp:DropDownList>
<asp:CheckBoxList ID="chkBoxListRegistrantBenefits" AutoPostBack="true" runat="server"
OnSelectedIndexChanged="chkBoxListRegistrantBenefits_SelectedIndexChanged">
</asp:CheckBoxList>
</itemTemplate>
</ContentTemplate>
</asp:UpdatePanel>
我面临的问题是每当我从下拉列表中选择任何值时,所有页面都会刷新在google上花了好几个小时后我找到了一个解决方案,即在转发器的itemdatabound事件上我们只需要在找到下拉列表后添加以下代码,
Dim sm As ScriptManager = ScriptManager.GetCurrent(Page)
sm.RegisterAsyncPostBackControl(objDropdownlist)
它对下拉列表非常有效,但是如果我写sm.RegisterAsyncPostBackControl(chkBoxListRegistrantBenefits)
,那么就像使用scripmanager实例一样,对于checkboxlist不起作用,它不起作用:(
答案 0 :(得分:2)
将ClientIDMode="AutoID"
添加到Repeater控件。
您不必添加任何触发器,甚至不必调用RegisterAsyncPostBackControl
。 ChildrenAsTriggers
应该注意这一点。
答案 1 :(得分:1)
在Repeater ItemDataBound事件
上使用screiptmanager方法RegisterAsyncPostBackControl
this.ScriptManager1.RegisterAsyncPostBackControl( e.Item.FindControl(“把你的复选框ID放在这里”));
答案 2 :(得分:0)
在开始<ContentTemplate>
之前添加此内容:
<Triggers>
<asp:AsyncPostBackTrigger ControlID="objDropdownlist" EventName="OnSelectedIndexChanged" />
</Triggers>