我有我的兩個頁面上不同的UpdatePanel和他們每個人都由被放置在不同的中繼不同的按鈕觸發,updapenels正常工作,從衝突避免我已經設置好的他們UpdateMode =「Conditional」但我無法確定觸發的updapanel的id爲。被觸發的UpdatePanel的ID只
在InitializeRequest
和EndRequest
事件,我需要確定哪些updatepanel
觸發,然後我可以做這個updapanel
指定一些客戶端的動畫。
Thanx。
我有我的兩個頁面上不同的UpdatePanel和他們每個人都由被放置在不同的中繼不同的按鈕觸發,updapenels正常工作,從衝突避免我已經設置好的他們UpdateMode =「Conditional」但我無法確定觸發的updapanel的id爲。被觸發的UpdatePanel的ID只
在InitializeRequest
和EndRequest
事件,我需要確定哪些updatepanel
觸發,然後我可以做這個updapanel
指定一些客戶端的動畫。
Thanx。
因此,所有的研究後,最好的做法看起來像這樣:
使用Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest)
和Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(InitializeRequest)
我將自己所有的觸發像
<asp:LinkButton Text="Detay" data-sid="PickAppToShow" CssClass="btn btn-default btn-sm" ID="lbtSelectApplication" runat="server" /></td>
,並在請求處理的數據屬性看like that
function InitializeRequest(sender, args) {
try {
var consernedObject = getAjaxObjectFromSender(sender);
consernedObject.Start();
}
catch (e) {
fn_ErrorLog(e);
}
};
function EndRequest(sender, args) {
try {
var consernedObject = getAjaxObjectFromSender(sender);
consernedObject.End();
}
catch (e) {
fn_ErrorLog(e);
}
};
helper方法是這樣的:
function getAjaxObjectFromSender(sender) {
var poster = sender._activeElement;
if (poster == null) {
return DefaultObject;
}
var posterSid = poster.getAttribute('data-sid');
if (posterSid == null) {
return DefaultObject;
}
var consernedObject = window[posterSid];
if (consernedObject == null) {
return DefaultObject;
}
return consernedObject;
}
訣竅是從現在開始,你就上述window[posterSid]
看到給你定名爲JS對象。如果你檢查我的RequestHandlers
;他們正在使用consernedObject.Start();
和consernedObject.End();
兩種方法,這兩種方法在另一個名爲AjaxObjects的js文件中預定義。
例如:
var DefaultObject = {
Start: function() {
//When Progress Start
App.blockElement($(window), "Pleae wait");
},
End: function() {
//When Progress End
App.unblockElement($(window));
}
};
var PickAppToShow = {
Start: function() {
//When Progress Start
App.blockElement($("#app-detail-content"), "Asking To Server");
},
End: function() {
//When Progress End
App.unblockElement($("#app-detail-content"));
}
};
var PickMemberToDetail = {
Start: function() {
//When Progress Start
App.blockElement($(window), "Wait For It");
},
End: function() {
//When Progress End
$("#modal-MembershipDetail").modal("show");
App.unblockElement($(window));
}
};
這種方法解決了我所有的問題,但我需要從服務器端的參數,可以通過使用hiddenField
來achived之一。