0

UpdatePanelが2つあります。1つにはとUpdatePanelCheckBoxありUserControlます。UserControlにはいくつかありTextBoxesます。他のupdatepanelには、いくつかありLabelsます。

チェックボックスにjavascript関数を追加して非表示/表示します。サーバーへの部分的なポストバックを回避するためにJavascriptを使用しています。

また、チェックボックスがオン/オフになっている場合、または一部のデータがユーザーコントロールのテキストボックスで変更されている場合に、2番目のUpdatePanelを更新したいと思います。

同じチェックボックスでJavaScript関数とサーバー側関数を呼び出すことはできますか?2番目のupdatepanelにトリガーを追加しようとしましたが、起動されません。

updatepanel1
  checkbox 
  usercontrol
    textbox1
    texbox2

updatepanel2
   label1 (updated on change of textbox 1)
   label2 (updated on change of textbox 1)

チェックボックスのマークアップは次のようになります

 <asp:CheckBox ID="chkShippingSameAsBilling" runat="server" 
     Text="  Ship to same address"
     AutoPostBack="true" Checked="true" 
     onclick="return ShowShippingAddress();" 
 />
4

3 に答える 3

1

ページにダミーボタンを追加できます。ボタンの 2 番目のパネルに非同期ポストバック トリガーを設定します。

<asp:AsyncPostBackTrigger ControlID="btnAsync" EventName="Click" />

チェックボックスのチェック変更で、javascript呼び出し機能で

btnAsync.Click();

2 番目の更新パネルを非同期的にポストバックします。2 番目のパネルのポストバックから、またはサーバー側のクリック イベントをダミー ボタンに追加することで、サーバー側の関数を呼び出すことができます。

于 2012-06-22T07:19:24.987 に答える
0

2 番目の updatePanel に非表示のボタンを配置します。

<div style="display:none">
   <asp:Button ID="YourButton" runat="server" />
</div>

次に、onclick 関数を使用してクリックします。

function ShowShippingAddress() 
{
     document.getElementById('<%# YourButton.ClientID %>').click()
}

これにより、2 番目のポストバックと更新が発生するはずです。

于 2012-06-22T07:19:37.513 に答える
0

チェックボックスのイベントを使用するには、2 番目のパネルでトリガーを設定する必要があります。ここにいくつかの例があります。

http://www.asp.net/web-forms/tutorials/aspnet-ajax/understanding-asp-net-ajax-updatepanel-triggers

別の ContentPlaceHolder にあるコントロールによって UpdatePanel の更新をトリガーします

また、より洗練されたソリューションについては、 knockout.jsまたはjqueryを参照してください...

http://knockoutjs.com/

于 2012-06-22T07:25:07.123 に答える