0

我有一个从应用程序中的各种网页调用的通用函数(自定义控件的函数)。
在常用函数中,我调用这样的javascript(示例代码)-

public void ShowMessage(string strMessage)
{
   string s=String.Empty;
   s="<script type='text/javascript'>\n";
   s = s + "alert('+strMessage+');";
   s = s + "</script>";
   Page.ClientScript.RegisterStartupScript(typeof(Page), this.ClientID, s);
}


当我从使用 UpdatePanel 的页面调用此函数时,它Page.RegisterStartUpScript不起作用。所以,我必须使用
ScriptManager.RegisterClientScriptBlock(Page, Page.GetType(), this.ClientID, s, false);
Now,我必须再传递一个参数来确定该函数是从 UpdatePanel 调用的。
像这样-

public void ShowMessage(string strMessage,bool isFromUpdatePanel){..}

我的问题是,在常用函数中,我能否知道该函数是否从 UpdatePanel 调用(不使用参数)?

4

1 回答 1

0

我找到了答案,我会用这个(从这里得到)-

string args= Page.Request.Params.Get("__EVENTTARGET");
if (!String.IsNullOrEmpty(args))
{
    //Called From Update Panel(or) UpdatePanel is posting back
}
else
{
    //Called From a page with no Update Panel
}

如果有更好的解决方案,请教我。

于 2012-08-31T10:33:35.533 回答