Обновление страницы при нажатии на checboxlist в репитере - PullRequest
1 голос
/ 16 ноября 2011

Меня раздражает проблема, у меня есть управление повторителем в панели обновления, как это.

<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) 

Это работало очень хорошо для выпадающего списка, но оно не работает для списка чекбоксов, как при использовании экземпляра scripmanager, если я пишу sm.RegisterAsyncPostBackControl(chkBoxListRegistrantBenefits), это не работает: (

Ответы [ 3 ]

2 голосов
/ 16 ноября 2011

Добавьте ClientIDMode="AutoID" к элементу управления Repeater.

Вам не нужно добавлять какие-либо триггеры и даже не нужно звонить RegisterAsyncPostBackControl.ChildrenAsTriggers должен позаботиться об этом.

1 голос
/ 17 июля 2012

на событие повторителя ItemDataBound

использовать метод screiptmanager RegisterAsyncPostBackControl

this.ScriptManager1.RegisterAsyncPostBackControl ( e.Item.FindControl («укажите здесь свой флажок»));

0 голосов
/ 16 ноября 2011

Добавить до начала <ContentTemplate>:

<Triggers>
    <asp:AsyncPostBackTrigger ControlID="objDropdownlist" EventName="OnSelectedIndexChanged" />
</Triggers>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...