在网上找了很多,都出现了不同的问题,最后修改了一个版本,觉得好用,就拿出来共享下
1
无数据显示表头#region 无数据显示表头
2
protected void OnlyShowGridViewHeader(GridView gv, DataTable dt)
3
{
4
if (dt.Rows.Count == 0)
5
{
6
dt.Rows.Add(dt.NewRow());
7
gv.DataSource = dt;
8
gv.DataBind();
9
foreach (TableCell cell in gv.Rows[0].Cells)
10
if (cell.HasControls())
11
foreach (Control ctrl in cell.Controls)
12
ctrl.Visible = false;
13
gv.Rows[0].Cells[0].Text = "";
14
//gv.Rows[0].Cells[gv.Columns.Count / 2-1].Text = "没有数据!";
15
}
16
}
17
18
protected void OnlyShowGridViewHeader(GridView gv, DataSet ds, string tableName)
19
{
20
OnlyShowGridViewHeader(gv, ds.Tables[tableName]);
21
}
22
23
protected void OnlyShowGridViewHeader(GridView gv, DataSet ds)
24
{
25
OnlyShowGridViewHeader(gv, ds.Tables[0]);
26
}
27
#endregion
一定要在数据绑定后再调用这个方法,呵呵
1
public void gvCheckDataBind()
2
{
3
DataSet ds = new DataSet();
4
ds = chk.QueryChecksCommand(drpOperateMode.SelectedValue, key.Text.Trim(), gm1.Date.ToString(), gm2.Date.ToString(), 2);
5
gvChecks.DataSource=ds;
6
gvChecks.DataBind();
7
OnlyShowGridViewHeader(gvChecks, ds);
8
}