单击转发器中的复选框列表时刷新页面

时间:2011-11-16 14:52:03

标签: asp.net postback repeater checkboxlist

我很烦恼我在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不起作用,它不起作用:(

3 个答案:

答案 0 :(得分:2)

ClientIDMode="AutoID"添加到Repeater控件。

您不必添加任何触发器,甚至不必调用RegisterAsyncPostBackControlChildrenAsTriggers应该注意这一点。

答案 1 :(得分:1)

在Repeater ItemDataBound事件

使用screiptmanager方法RegisterAsyncPostBackControl

this.ScriptManager1.RegisterAsyncPostBackControl( e.Item.FindControl(“把你的复选框ID放在这里”));

答案 2 :(得分:0)

在开始<ContentTemplate>之前添加此内容:

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="objDropdownlist" EventName="OnSelectedIndexChanged" />
</Triggers>