我在UpdatePanel中有兩個控件;一個複選框和一個時間選擇器。如何在沒有完整回傳的情況下舉辦活動?
當我點擊複選框(事件CheckedChanged)時,它應該使timepicker可編輯(ReadOnly = false),反之亦然。我希望事件CheckedChanged在未做完整回發的情況下引發。
有沒有在javascript中做的解決方法?我不知道如何管理UpdatePanel上的觸發器。
謝謝!
(asp.net 4.0,C#)
我在UpdatePanel中有兩個控件;一個複選框和一個時間選擇器。如何在沒有完整回傳的情況下舉辦活動?
當我點擊複選框(事件CheckedChanged)時,它應該使timepicker可編輯(ReadOnly = false),反之亦然。我希望事件CheckedChanged在未做完整回發的情況下引發。
有沒有在javascript中做的解決方法?我不知道如何管理UpdatePanel上的觸發器。
謝謝!
(asp.net 4.0,C#)
不幸的是,使用一個UpdatePanel會導致完全回發。所以如果你不想這樣做,你必須使用客戶端JavaScript。
這不是很複雜。找一個能爲你寫JavaScript的人,這不是火箭科學。
我看到...謝謝您 – Soader03 2012-02-07 15:45:19
您可以將代碼添加到您的OnInit和的OnLoad跳過執行它們包含通過檢查Request.IsPostback,如果一個特定的控制導致它(回傳)的代碼; e.g:
<asp:CheckBox runat="server" ID="MyCheckbox" AutoPostBack="true" />
if(this.Request.IsPostback && this.Request.Form["__EVENTTARGET"] == this.MyCheckbox.ID)
{
return;
}
因爲我沒有測試這一點,如果您的複選框被嵌套在其他控制,這會導致它的客戶端ID和的UniqueID是前置父控件的ID值,然後測試高於2層的性質。此外,您可以將該條件更改爲相反的,顯然,這樣您可以將完整的主體代碼包裝在該IF塊中(如果這是您喜歡的,或者如果您不喜歡一種方法中的多個返回語句)。
我希望我理解得很好 - 這樣可以節省一些處理;但是,它可能有負面影響(例如,如果你有一些代碼添加控件來控制樹動態,在服務器上的init/load方法之內,那麼你想那些總是執行,即使在這種情況下,否則,這些控件的視圖狀態將失效)。
所以你不想處理事件服務器端,你也不想用Javascript處理它?嗯,我不確定還有其他的選擇。除非我誤解你的問題。 – 2012-02-07 15:28:45
我想處理事件服務器端。我只是不想做一個完整的回發 – Soader03 2012-02-07 15:44:08