2009-07-26 13 views
2

私は2つのアップデートパネルを持っています。最初のアップデートパネル(up1)にはリピータコントロールが含まれています。 up1でボタンの1つをクリックすると、up1のボタンから渡されたパラメータを使用して2番目の更新パネル(up2)を更新するだけです。 基本的に、各ボタンには会話IDがあるので、クリックするとup2はそのIDの会話からすべてのメッセージを取得します。他の機能のため、2つの更新パネルが必要です。ASP .NET別のアップデートパネルのリピータボタンからアップデートパネルを制御する

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true" runat="server" > 
</asp:ScriptManager> 
<asp:UpdatePanel runat="server" ID="up1" OnLoad="up1_Load"> 
    <ContentTemplate> 
     <asp:Repeater ID="Repeater1" runat="server"> 
      <ItemTemplate> 
       <asp:Button ID="Button1" runat="server" 
        CommandName="conversationID" 
        CommandArgument='<%# Eval("conversation_id") %>' /> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ContentTemplate> 
</asp:UpdatePanel> 

<asp:UpdatePanel ID="up2" runat="server"> 
    <ContentTemplate> 
     <asp:Repeater ID="Repeater2" runat="server"> 
      <ItemTemplate> 
       <p><%#Eval("message")%></p> 
      </ItemTemplate> 
     </asp:Repeater> 
    </ContentTemplate> 
</asp:UpdatePanel> 

コードの引数にコマンド引数を渡そうとしましたが、機能しません。誰かが正しい方向に私を向けることができますか?

感謝

答えて

0

のUpdatePanelは、動的なコンテンツ(例えば、AJAX)のためのものであるので、第二のパネルを更新する最適な場所(例えばJavaScriptで)クライアントに代わりのサーバーでコードビハインドです。

また、.aspxファイルにコードブロックがない場合、コードはよりクリーンになります。 UpdatePanelをトリガするためにクライアント側のコントロールを取得する方法としてAsyncPostBackTriggersを見上げてインラインコードとEval

+0

私は、javascriptコード内の関数に会話ID番号を渡すボタンにonclickイベントを追加しようとしました。これにより、コードパネル内のupdatePanelを更新するメソッドが呼び出されます。たとえば、次のようになります。 function CallMyMethod(cid){ PageMethods.MyMethod(cid、MyMethod_Result); } 問題は、それが呼び出しWebMethod属性サブルーチンは、例えば、通信に「共用」しなければならないことである。 _ 公開共用サブMyMethodは(整数としてByVal CID) ..get SQLデータにリピータに結合updatepanel2 End Sub – user80632

+0

この問題は、データをバインドしようとすると次のエラーが発生することがあります。 共有メソッド内からクラスのインスタンスメンバーを参照できません – user80632

1

を使用してたとえば、背後にあるコードの中でbutton1ためButton変数を宣言して、ページのPageLoadPageInitの代わりにCommandArgument属性を設定します部分的なページリフレッシュを実行します。私は...そのように何度も一緒に2枚の更新パネルを結び付けてきた

<UpdatePanel> 
    <Triggers> 
    <asp:AsyncPostBackTrigger ControlID=”up1” /> 
    </Triggers> 
    <ContentTemplate> 
    .... 
    </ContentTemplate> 
</UpdatePanel> 

あなたはすべてのリピーターのためのトリガルールを追加する必要があります場合、私はあなたが一緒に実際のUpdatePanelsをリンクすることができるかどうかぶっきらぼう覚えていたりしません。あなたのup1のUpdatePanel

関連する問題