2012-11-26 3 views
0

Page_Init에 다양한 수의 업데이트 패널을 추가하고 있습니다.UpdatePanel과 해당 트리거를 프로그래밍 방식으로 어떻게 추가합니까?

이미 마스터 페이지에 스크립트 관리자가 있습니다. ddl22가있는 DropDownList입니다

AsyncPostBackTrigger trig2 = new AsyncPostBackTrigger(); 

trig2.ControlID = ddl22.UniqueID; 

trig2.EventName = "SelectedIndexChanged"; 

up2.Triggers.Add(trig2); 

, 이벤트가 결코 UpdatePanel을 트리거 것 같다 :

문제는 내가 좋아하는 트리거를 추가 할 때이다.

UpdatePanel에는 트리거 발생시 변경하려는 데이터가있는 다른 DropDownList가 있습니다.

재미있는 점은 마스터 페이지에 타이머가 있다는 것입니다. 이 타이머는 마스터에서 UpdatePanel을 트리거하기로되어 있지만 모든 업데이트 패널을 트리거하는 것으로 보입니다. 그러나 하위 페이지에서 업데이트 패널을 트리거하는 경우에도 두 번째 DropDownList는 해당 데이터를 변경하지 않습니다.

데이터는 page_init의 UpdatePanel에있는 DropDownList에 데이터 바인딩됩니다. 첫 번째 DropDownList에서 선택한 항목을 매개 변수로 사용하여 바인딩해야하는 데이터를 결정하는 objectdatasource에 바인딩됩니다.

답변

1

소스 코드에서

? 나는 이것이 문제라고 생각한다.

또한 업데이트 패널 모드를 조건부 -UpdateMode="Conditional"으로 설정하여 다른 업데이트 패널에는 영향을주지 않습니다.

0

이 시도, 당신은 목록 아래로 강하 AutoPostBack="True"을 설정 했

<asp:UpdatePanel ID="up2" runat="server" UpdateMode="Conditional"> 
    <ContentTemplate> 
    <asp:DropDownList ID="ddl1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddl1_SelectedIndexChanged"></asp:DropDownList>  
    <asp:DropDownList ID="ddl2" runat="server" AutoPostBack="True" OnSelectedIndexChanged="ddl2_SelectedIndexChanged"></asp:DropDownList> 
    </ContentTemplate> 
    <Triggers> 
     <asp:PostBackTrigger ControlID="ddl2" /> 
    </Triggers> 
    </asp:UpdatePanel> 
0

postBack 이벤트에 트리거를 지정하지 않고 수동으로 UpdatePanel을 새로 고쳐 새로 고칠 수 있습니다. 먼저 set the UpdateMode property to 'Conditional'이면 업데이트 패널의 업데이트를

MyUpdatePanel.Update(); 
과 같은 코드로 호출하면됩니다.
관련 문제