AJAX下EXCEL不能按原来的方式导出,因为在异步方式下Response.write是会出错的,所有在页面加载的时候可以将导出按钮注册为同步方式,同时在UpdatePanel里不能注册导出按钮,即可解决该问题。【对于VS自带的ajax此办法即可解决,网上找了N久,很多都是第三方ajax(非vs自带的)导出excel的解决办法,好不容易才找到此办法】
C#代码:
protected void Page_Load(object sender, EventArgs e)
{
PostBackTrigger trigger = new PostBackTrigger();
trigger.ControlID = "btn_export";
((UpdatePanel)Page.Controls[0].FindControl("UpdatePanel1")).Triggers.Add(trigger);
}
//重载VerifyRenderingInServerForm方法,否则运行的时候会出现如下错误提示:“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内” public override void VerifyRenderingInServerForm(Control control) {
//override VerifyRenderingInServerForm. }
前台代码:
CellPadding="4" ForeColor="#333333" GridLines="None" Width="100%">