1.打开GridView任务面板,进编辑列面板,添加一个TemplateField(模板字段)字段,然后确定退出此面板。
2.在GridView任务面板选择编辑模板,进入编辑模板面板,选择刚才增加的模板字段,从工具箱中拖入一个APSNET控件Label。绑定数据字段。完成后源代码如下:
………..
…….
3.编写GridView的RowDataBound事件。
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.Cells.Count == 5)//为什么是5?这个表是5列(在实际使用时表有几列就设为几),如果使用了GridView自动分页功能,分页也是GridView中的一行,但其只有1列,因此在此不指定5列作为限定条件时,将无法执行。
{
foreach (Control ctl in e.Row.Cells[3].Controls)//注意:是第3列,从0列开始
{
if (ctl is Label)
{
string St = ((Label)ctl).Text;
St = "
" + St + "";//如果是模板列中的Lable控件时,取出其中的数据,并增加
标志后再赋值给Label控件的Text
((Label)ctl).Text = St;
}
}
}
}
有两点我觉得有问题. 你改正下试试吧.
1. 在GridViewBind() 中. 把
GridView1.DataSource = ds改为
GridView1.DataSource = ds.Tables["DemandForecast"];
2.先注释掉这句, 或者只定义一个值.!
GridView1.DataKeyNames = new string[] { "Date", "TankId" };
其它的我看也没什么问题. 希望能给你点 提示..
你的GridViewBind()里面少了一句cmd.ExecuteNonQuery();
没有执行哪里来的数据~要细心点~
1.直接在数据库中执行下sql语句,看看有没有记录.
2.如果有记录.
楼主的GridViewBind()方法应该是没错的(虽然有几句冗余的代码)
页面中没显示,可能有以下几个原因.
a.GridView的"自动生成字段"是不是没有勾选,即AutoGenerateColumns=false.
如果是设为false,需要手动添加数据列.不然是没有数据列的.
b.visible属性是不是设为了false.
c.前台页面的样式是不是有问题.
最大的可能就是没数据,楼主好好排查下吧