2011-11-16 3 views
0

나는 이와 같이 updatepanel에서 리피터 컨트롤이있는 문제에 짜증이납니다.리피터에서 checboxlist를 클릭하면 페이지 새로 고침이 발생합니다.

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

나는 내가 해결책, 즉 발견 구글에 시간을 소비 한 후 모든 페이지가 중계기하여 ItemDataBound 이벤트에 갱신됩니다 드롭 다운 메뉴에서 값을 선택할 때마다 우리가 뒤에 다음 코드를 추가 할 필요가 직면 문제 드롭 다운을 찾는

Dim sm As ScriptManager = ScriptManager.GetCurrent(Page) 
      sm.RegisterAsyncPostBackControl(objDropdownlist) 

그것은 드롭 매우 잘 작동하지만, 같은, :(

+0

업데이트 패널에 ''섹션을 지정하고 드롭 다운 및 체크 박스를 [AsyncPostBackTrigger] (http://msdn.microsoft.com/en-us/library/system.web.ui.asyncpostbacktrigger)로 선언해야합니다. .aspx) s. –

+0

@JimSchubert : 그럴 필요는 없지만 여전히 문제를 해결할 수 있습니다. –

+0

ClientIDMode = "AutoID"를 Repeater 컨트롤에 추가 해보십시오. 트리거를 추가 할 필요가 없으며 'RegisterAsyncPostBackControl'을 호출 할 필요도 없습니다. 'ChildrenAsTriggers'는 그것을 처리해야합니다. – kevev22

답변

1

는 Repeater 컨트롤에 ClientIDMode="AutoID"을 추가합니다.

트리거를 추가 할 필요가 없으며 RegisterAsyncPostBackControl으로 전화하지 않아도됩니다. ChildrenAsTriggers이이를 처리해야합니다.

리피터하여 ItemDataBound 이벤트에
+0

+1. 이것은 'ClientIDMode'가 비동기 포스트 백이 이전 버전과 다르게 작동하게하는 흥미로운 사실입니다. 그러나 'ClientIDMode'는 ASP.NET 4.0에서만 사용할 수 있으며 이전 버전의 ASP.NET에서는이 문제를 해결하지 못합니다. –

0

가 전에이 추가 작동하지 않습니다 내가 sm.RegisterAsyncPostBackControl(chkBoxListRegistrantBenefits) 쓰기 경우 scripmanager 인스턴스를 사용하여 같은 checkboxlist 작동하지 않습니다 <ContentTemplate>의 시작 :

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

당신이 끝나지 않았 으면 좋겠다. –

+2

@Bhargav, http://meta.stackexchange.com/questions/22186/how-do-i-format-my-code-blocks를 읽으십시오. 형식이 지정되지 않은 XML 마크 업은 표시되지 않으며 이해하기가 어려울 수 있습니다. –

+0

감사합니다. 선생님, 저에게 알려 주셔서 감사합니다. –

1

사용 screiptmanager 방법 RegisterAsyncPostBackControl

this.ScriptManager1.RegisterAsyncPostBackControl ( e.Item.FindControl() "여기 체크 박스 ID를 넣어");