以下为引用的内容:
1、原来的导出按钮增加 OnClientClick事件。
btnExport.OnClientClick = "return AutoForm_Export('PostBackEventTarget_IsExport');";
2、客户端增加javascript函数AutoForm_Export。
function AutoForm_Export(postBackEventTarget)
{
WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(postBackEventTarget, "", true, "", "", false, true)) ;
return false;
}
3、在服务器端根据Request["__EVENTTARGET"] 来判断是否是导出事件。注意下面红色字体的注释
if (Page.Request["__EVENTTARGET"] != null)
{
bool isInAsyncPostBack = false;
ScriptManager sm = ScriptManager.GetCurrent(Page);
if (sm != null)
{
isInAsyncPostBack = sm.IsInAsyncPostBack;
}
if (isInAsyncPostBack )
{
/*
一定要进行判断是否是使用Axaj进行异步请求,否则在点击导出按钮以后,再进行其它Ajax请求, Page.Request["__EVENTTARGET"] 会保留原来的值,这样就错误判断了。 */
_isExport = false
}
else
{
string postBackEventTarget = Page.Request["__EVENTTARGET"].ToString();
if (postBackEventTarget == "PostBackEventTarget_IsExport")
{
_isExport = true;
}
else
_isExport = false;
}
}
else
_isExport = false;
}