当我想获得excel导出,Button_click什么都不做ASP.NET C#

当我试图从我的mysqldatabase获取excel导出时,它不会对button_click执行任何操作。 我可以看到,gridview是由DataTable填写,但在回发它不下载我gridview的excel输出。我无法找出问题出在哪里。 感谢您帮助球员。

这是我的.aspx网格视图代码

<asp:GridView ID="GridView1" HeaderStyle-BackColor="#3AC0F2" HeaderStyle-ForeColor="White" RowStyle-BackColor="#A1DCF2" AlternatingRowStyle-BackColor="White" AlternatingRowStyle-ForeColor="#000" runat="server" AutoGenerateColumns="false" AllowPaging="true" OnPageIndexChanging="OnPageIndexChanging"> <Columns> <asp:BoundField DataField="isbn" HeaderText="isbn" ItemStyle-Width="150px" /> <asp:BoundField DataField="display_name" HeaderText="bookName" ItemStyle-Width="100px" /> <asp:BoundField DataField="authorName" HeaderText="authorName" ItemStyle-Width="100px" /> </Columns> 

这是我的数据绑定和button点击

 private void BindGrid() { DataTable dt = book.getAllbookExcelExport(); GridView1.DataSource = dt; GridView1.DataBind(); } protected void btnExport_ServerClick(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.ms-excel"; using (StringWriter sw = new StringWriter()) { HtmlTextWriter hw = new HtmlTextWriter(sw); //To Export all pages GridView1.AllowPaging = false; this.BindGrid(); GridView1.HeaderRow.BackColor = Color.White; foreach (TableCell cell in GridView1.HeaderRow.Cells) { cell.BackColor = GridView1.HeaderStyle.BackColor; } foreach (GridViewRow row in GridView1.Rows) { row.BackColor = Color.White; foreach (TableCell cell in row.Cells) { if (row.RowIndex % 2 == 0) { cell.BackColor = GridView1.AlternatingRowStyle.BackColor; } else { cell.BackColor = GridView1.RowStyle.BackColor; } cell.CssClass = "textmode"; } } GridView1.RenderControl(hw); //style to format numbers to string string style = @"<style> .textmode { } </style>"; Response.Write(style); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); } } 

这是我的page_load

 protected void Page_Load(object sender, EventArgs e) { Page.Form.Attributes.Add("enctype", "multipart/form-data"); ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); scriptManager.RegisterPostBackControl(btnSave); if (!Page.IsPostBack) { this.BindGrid(); } }