我有一個包含以下內容頁...
防止滿回發從__doPostBack
- UpdatePanel1 - 包含錯誤顯示的div
包含更新觸發了兩個按鈕- UpdatePanel2 - 含過程1帶有asp:按鈕
- updatePanel3 - 包含帶有asp:按鈕的進程2
- 爲用戶提供Popup的JavaScript根據他們正在執行的過程確認Jquery消息框。
UpdatePanel的2或3基於從菜單選項中的用戶選擇變得可見。
當我點擊一個按鈕,在MessageBox持久性有機污染物和頁面使用__doPostBack從消息框響應處理正確的頁面做一個完整的回發。
我寧願頁面做部分回發和它的內容,並顯示錯誤顯示Divs,如果有錯誤。任何援助將不勝感激。
沒有什麼特別的按鈕
<asp:Button ID="ResetSomething" runat="server" Text="ResetSomething" Width="275px" />
這裏是內容頁腳本塊
<script type="text/javascript" language="javascript">
<!--
function pageLoad() {
setform();
};
function setform() {
var reset1_button = $('input[id*=ResetSomething]');
var reset2_button = $('input[id*=ResetSomethingElse]');
reset1_button.click(function() {
var element = $(this);
$.prompt('Message1', { show: 'slideDown', buttons: { Ok: true, Cancel: false },
submit: function(v, m, f) { submit_reset_callback(v, m, element); }
});
return (false);
});
var submit_reset_callback = function(result, messages, element) {
if (result) { __doPostBack("ResetSomething");}
return (false);
};
reset2_button.click(function() {
var element = $(this);
$.prompt('Message2', { show: 'slideDown', buttons: { Ok: true, Cancel: false },
submit: function(v, m, f) { submit_update_callback(v, m, element); }
});
return (false);
});
var submit_update_callback = function(result, messages, element) {
if (result) { __doPostBack("ResetSomethingElse"); }
return (false);
};
};
-->
</script>
這是後面的代碼爲的OnInit:
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
this.PreLoad += (sender, args) =>
{
this.ClientScript.GetPostBackEventReference(this, "arg");
if (!IsPostBack) { return; }
string __targetaction = this.Request["__EVENTTARGET"];
string __args = this.Request["__EVENTARGUMENT"];
if (string.IsNullOrEmpty(__args)) return;
if (__targetaction == "ResetSomething")
{
ResetSomething();
}
if (__targetaction == "ResetSomethingElse")
{
ResetSomethingElse();
}
this.upnlNotifications.Update();
};
}
controlId應該是按鈕的ID是否正確?如果是這樣,我仍然可以得到相同的結果,整頁回發。 – Tim
明白了。 __doPostBack(eventName.attr('id'),eventArgs);像魅力一樣工作。傳遞只是eventName拋出一個JavaScript錯誤。謝謝wonkim00 – Tim