개인 무효 내보내기ExcelFromDataGrid(문자열 파일 이름, System.Web.UI.WebControls.DataGrid ToExcelGrid)
{
응답.지우기();
응답.버퍼= true;
Response.Charset="utf-8";
Response.AppendHeader("Content-Disposition","attachment;filename="+Server.UrlEncode ( 파일 이름 ) );
Response.ContentEncoding=System.Text.Encoding.Default;//设置输流为简体中文
Response.ContentType = "application/ms-excel";//设置输流文件类型为excel文件。
this.EnableViewState = 거짓;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
ToExcelGrid.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
응답.끝();
}
개인 무효 Button4_Click(개체 전송자, System.EventArgs e)
{
this.Panel1.Visible = 거짓;
문자열 파일명 = "内训师.xls";
this.DataGrid1.Columns[6].Visible = true;
this.DataGrid1.Columns[7].Visible = true;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-1].Visible = false;
this.DataGrid1.Columns[this.DataGrid1.Columns.Count-2].Visible = false;
this.DataGrid1.AllowSorting = false;
this.DataGrid1.AllowPaging = false;
this.DataGrid1.SelectedIndex = -1;
this.BindGrid();
this.ExportExcelFromDataGrid(파일 이름, this.DataGrid1);
}
원리적인 DataGrid(其实是其父类Control)의 RenderControl 방식이 출력되고, DataGrid의 외부 설명은 HTML代码写入到缓冲区, 같은 유형의 ContentType, 让Excel 자체에서 생성됩니다.自动纠错功能将这个输出Excel 문서를 참조하세요
.
"LinkButton은 runat=서버의 양식에 따라 사용됩니다." 더 많은 내용이 있습니다.
问题很明显,因为DataGrid没有放재runat=서버의 Form里화면, 加上就可以了.
我认为,这种回答是很不准确的,由如下 :
통용되는 사람 예/좋은 DataGrid,最起码已经能了는 runat=서버 양식에 따라 결정됩니다.
报错是LinkButton, 而不是DataGrid, 很多细心的朋友很可能会说, 我一直来会DataGrid,LinkButton이 더 이상 사용되지 않습니다.
其实真正的问题是,상면의 代码没有加了 // * 的那几行代码引起的.
当然如果你的DataGrid는 没有排序,没有使用那种按钮列的话,是不会弚问题的입니다.
言归正传,LinkButtion其实是你将DataGrid设为可排序时候,的表头包含的,所以我要将DataGrid的排序设为False。
같은 페이지의 상단면에는 LinkButton이 없습니다.
其实说得再明白一点就是,将有可能产生LinkButton,或其他控件的东西道不让它输流就是了