2012-06-22 55 views
0

我有兩個UpdatePanel。一個UpdatePanel具有CheckBoxUserControl。 UserControl有一些TextBoxes。在其他更新面板中,很少有Labels使用第一個更新面板中的複選框更新第二個更新面板

我已將javascript功能添加到複選框來隱藏/顯示它。我正在使用Javascript來避免部分回傳到服務器。

我也想更新第二個UpdatePanel時,複選框被選中/取消選中或某些數據在用戶控件的文本框中的更改。

我可以在同一個複選框上調用javascript函數以及服務器端函數嗎?我嘗試添加觸發器到第二個更新面板,但它們沒有被解僱。

updatepanel1 
    checkbox 
    usercontrol 
    textbox1 
    texbox2 

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

我複選框markupd看起來像這樣

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

什麼的UpdatePanel? –

+0

ajax updatepanel – DotnetSparrow

+0

不知道從JavaScript更新,但你有沒有嘗試'updatepanel1.Update()'在服務器端? – yogi

回答

1

您可以在頁面上添加一個虛擬按鈕。爲按鈕上的第二個面板設置異步回發觸發器。

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

在檢查改變了複選框,在javascript調用函數

btnAsync.Click(); 

這將異步回發第二個更新面板。您可以從第二個面板回發或通過向虛擬按鈕添加服務器端點擊事件來調用服務器端功能。

0

將一個隱藏按鈕在你的第二個UpdatePanel中:

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

然後單擊使用您的onclick功能:

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

這應該引起第二回發和更新。