据我了解,与ASP.NET AJAX部分页面更新引起调用JavaScript的页面加载()事件处理程序。
我的问题:是否有从页面加载()函数中使用JavaScript确定一个通用的方法...
我)如果回发是一个局部页面更新与否。
ⅱ)如果有,是面板已更新。
我的应用程序使用.NET的UpdatePanel与Telerik的RadAjaxPanels的组合。 我在寻找这不需要我来指定每个面板的唯一客户端回调函数,也没有从每次回发事件处理程序中设置一些标志来标识自己的客户端的通用(最好的JavaScript)的解决方案。
要确定是否回发是部分更新与否,你可以使用ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack
。 下面是一个例子:
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsPostBack)
{
// get a reference to ScriptManager and check if we have a partial postback
if (ScriptManager.GetCurrent(this.Page).IsInAsyncPostBack)
{
// partial (asynchronous) postback occured
// insert Ajax custom logic here
}
else
{
// regular full page postback occured
// custom logic accordingly
}
}
}
并获得导致回发更新面板,你可以看看ScriptManager.GetCurrent(Page).UniqueID
和分析。 下面是这样做的一个例子:
public string GetAsyncPostBackControlID()
{
string smUniqueId = ScriptManager.GetCurrent(Page).UniqueID;
string smFieldValue = Request.Form[smUniqueId];
if (!String.IsNullOrEmpty(smFieldValue) && smFieldValue.Contains("|"))
{
return smFieldValue.Split('|')[0];
}
return String.Empty;
}
参考文献:
- http://forums.asp.net/t/1562871.aspx/1
- 获取该发射了AJAX的UpdatePanel内回传的ASP.NET控件
文章来源: Determine if and which partial postback occurred in pageLoad() with JavaScript in .NET