0

Page_Init に可変数の更新パネルを追加しています。

マスター ページに既にスクリプト マネージャーがあります。

問題は、次のようなトリガーを追加しようとしたときです。

AsyncPostBackTrigger trig2 = new AsyncPostBackTrigger();

trig2.ControlID = ddl22.UniqueID;

trig2.EventName = "SelectedIndexChanged";

up2.Triggers.Add(trig2);

ここで、ddl22 は DropDownList であり、イベントが UpdatePanel をトリガーすることはないようです。

UpdatePanel には、トリガーが発生したときにデータを変更する別の DropDownList があります。

面白いことに、マスター ページにはタイマーがあります。このタイマーは、マスターで UpdatePanel をトリガーすることのみを想定していますが、すべての更新パネルをトリガーするようです。ただし、子ページで更新パネルをトリガーしても、2 番目の DropDownList はそのデータを変更しません。

データは、page_init の UpdatePanel の DropDownList にデータバインドされます。最初の DropDownList で選択された項目をパラメーターとして使用して、バインドするデータを決定する objectdatasource にバインドされます。

4

3 に答える 3

1

AutoPostBack="True"ドロップダウンリストを設定しましたか?これが問題だと思います。

また、更新パネル モードを conditional- に設定しUpdateMode="Conditional"て、i が他の更新パネルに影響を与えないようにします。

于 2012-11-27T05:11:19.803 に答える
0

postBack イベントでトリガーを指定せずに、手動で UpdatePanel を呼び出して更新することができます。まず、set the UpdateMode property to 'Conditional'次のように、コード ビハインドから updatepanel で更新を呼び出すことができます。

MyUpdatePanel.Update();
于 2012-11-27T05:15:52.583 に答える
0

これを試して、

ソースコードでは、

  <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>
于 2012-11-27T05:06:26.083 に答える