转帖.原帖如下:
GridVew提供了EmptyRowText让开发者在没有数据的情况下显示提示信息告诉用户,但是用户还是习惯于常见的空表头。要达到这一目的,方法很多。《ASP.NET 2.0实战起步》中介绍了几种,此外,还有另种常用的方法:
DataTable l_Dt = ds.Tables[0];
DataRow l_Dr = l_Dt.NewRow();
l_Dt.Clear();
l_Dt.Rows.Add(l_Dr);
GridView.DataSource = l_Dt;
GridView.DataBind();
DataRow l_Dr = l_Dt.NewRow();
l_Dt.Clear();
l_Dt.Rows.Add(l_Dr);
GridView.DataSource = l_Dt;
GridView.DataBind();
为GridView绑定一个空表。
这样子绑定的话GridView依然会显示一行空行.
如果原先的GridView已经有了数据的帮顶.比如SqlDataSource绑定的话.则需要使用如下方法
public void AddNullRow(GridView gv)
{
//添加新临时表
DataTable dt = new DataTable();
//在表中添加行
dt.Columns.Add("period");
dt.Columns.Add("num1");
dt.Columns.Add("num2");
dt.Columns.Add("num3");
..//需要定义多少行视实际情况而定
//定义新行
DataRow dr = dt.NewRow();
dt.Clear();
//将新行添加到表中
dt.Rows.Add(dr);
gv.DataSource = dt;
gv.DataBind();
//绑定之后将第一行隐藏
gv.Rows[0].Visible = false;
}
{
//添加新临时表
DataTable dt = new DataTable();
//在表中添加行
dt.Columns.Add("period");
dt.Columns.Add("num1");
dt.Columns.Add("num2");
dt.Columns.Add("num3");
..//需要定义多少行视实际情况而定
//定义新行
DataRow dr = dt.NewRow();
dt.Clear();
//将新行添加到表中
dt.Rows.Add(dr);
gv.DataSource = dt;
gv.DataBind();
//绑定之后将第一行隐藏
gv.Rows[0].Visible = false;
}
在调用的时候需要将原先GridView绑定的数据取消掉.即
//GridView gv=new GridView();
//添加空行之前需取消掉原先的绑定,如果原先没有绑定的则可以省略
gv.DataSource = "";
gv.DataSourceID = "";
AddNullRow(gv);
//在添加了新行之后.需要将数据集的绑定重新设定好
gv.DataSourceID = "SqlDataSource";
gv.DataBind();
//添加空行之前需取消掉原先的绑定,如果原先没有绑定的则可以省略
gv.DataSource = "";
gv.DataSourceID = "";
AddNullRow(gv);
//在添加了新行之后.需要将数据集的绑定重新设定好
gv.DataSourceID = "SqlDataSource";
gv.DataBind();