gridview动态绑定列后,为什么导出excel后,gridview那就是空白的?
public void SetBindMaching()
{
DataTable dt = GetMachingDataTable(); //获得数据源
gvshow = new GridView();
gvshow.Width = Unit.Pixel(700);
gvshow.AutoGenerateColumns = false;
gvshow.RowCreated += new GridViewRowEventHandler(GridView1_RowCreatedMaching); //添加编辑事件,动态生成头。
gvshow.DataSource = dt;
for (int i = 0; i < dt.Columns.Count; i++)
{
BoundField bc = new BoundField();
bc.DataField = dt.Columns[i].ColumnName.ToString();
// bc.HeaderText = dt.Columns[i].Caption.ToString();
gvshow.Columns.Add(bc);
}
gvshow.DataBind();
divshow.Controls.Add(gvshow);
//这儿导出excel
Export(gvshow,"application/ms-excel", "Maching.xls");//执行以后 本来有内容的gridview一片空白
}
protected void GridView1_RowCreatedMaching(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
//第一行表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
//tcHeader.Add(new TableHeaderCell());
//tcHeader[0].Attributes.Add("rowspan", "3"); //跨Row
//tcHeader[0].Attributes.Add("bgcolor", "white");
//tcHeader[0].Text = "";
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("colspan", MachingLen.ToString() + 1); //跨Column
tcHeader[0].Attributes.Add("bgcolor", "Silver");
tcHeader[0].Text = "Pegasus Query</th></tr><tr>";
//第二行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[1].Attributes.Add("rowspan", "2"); //跨Row
tcHeader[1].Attributes.Add("bgcolor", "DarkSeaGreen");
tcHeader[1].Attributes.Add("length", "12");
tcHeader[1].Text = "序列号 <br/>Load Cell ID";
int TotalCallNum = 1;//总共调用次数
int iOffset = TotalCallNum + 2; //初始Offset=调用数量+3
AddMachingProcHeader(tcHeader, 1, MachingLen, true);//创建头
AddMachingProc(tcHeader, 1, ref iOffset, MachingLen, true);
break;
}
}