网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

GridView空记录时显示Header和Footer

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

维护工具界面主要采用GridView进行数据的增、删、改、显示,并且所有的数据都保存在Xml文件中,没有采用数据库对数据进行存储,所以Xml配置文件的设计需要合理的格式。
  看到标题,大家也会明白GridView中采用了模板列

    <ItemTemplate> 用于显示数据控件Label
    <EditItemTemplate> 用于编辑和保存的时候显示控件,根据所需选择
    <FooterTemplate> 用于增加的时候显示的控件,根据所需选择

  大家都应该清楚,在没有数据的时候,GridView是不显示的,只会显示EmptyDataText里填写了文本。在真正做的时候确遇到了相当多问题,有记录的时候增、删、改功能不会存在什么问题,一旦没记录原本想让显示Header和Footer,但是结果却是什么都不显示,也试了好多方法,结果都不令人满意,比如:可以创建一个DataTable,添加一条空记录,重新对GridView进行填充和绑定,这样虽然显示了Header和Footer,但是空记录也随之显示了,因为我之前我给GridView增加了一列自增编号,此列就会显示1。

  代码如下:

  1. protected DataTable GetEmptyDataGrid() 
  2.     DataTable dt = new DataTable("Table1"); 
  3.     //没有数据时模拟出一些原始数据绑定GridView 
  4.      dt = new DataTable(); 
  5.     //dt.Columns.Add("id"); 
  6.      dt.Columns.Add("csmc");//参数名称 
  7.      dt.Columns.Add("csbl");//参数变量 
  8.      dt.Columns.Add("cslx");//参数类型 
  9.      dt.Columns.Add("sfjl");//是否级联 
  10.      dt.Columns.Add("mrz");//默认值 
  11.     dt.Columns.Add("sql");//SQL填充 
  12.     DataRow dr = dt.NewRow(); 
  13.     dt.Rows.Add(dr); 
  14.     dt.AcceptChanges(); 
  15.     return dt; 

经过自己的不懈努力和网上的资料,最后总算是找到了一个解决方法,也达到了想要的结果。
  在GridView的PreRender事件中,判断 Rows.Count 是否等于0,再执行函数renderEmptyGridView函数,这样也就实现了新增的功能。
  具体代码如下:

  1. protected void GridView1_PreRender(object sender, EventArgs e) 
  2.     if (GridView1.Rows.Count == 0) 
  3.     { 
  4.         renderEmptyGridView(GridView1, "csmc, csbl, cslx, sfjl, mrz, sql"); 
  5.     } 
  6. public static void renderEmptyGridView(GridView EmptyGridView, string FieldNames) 
  7. {     
  8.     //将GridView变成只有Header和Footer列,以及被隐藏的空白资料列     
  9.     DataTable dTable = new DataTable();     
  10.     char delimiterChars = {','};     
  11.     string colName = FieldNames.Split(delimiterChars);      
  12.     foreach (string myCol in colName)     
  13.     {         
  14.         DataColumn dColumn = new DataColumn(myCol.Trim());         
  15.         dTable.Columns.Add(dColumn);     
  16.     }     
  17.     DataRow dRow = dTable.NewRow();     
  18.     foreach (string myCol in colName)     
  19.     {         
  20.         dRow[myCol.Trim()] = DBNull.Value;     
  21.     }     
  22.     dTable.Rows.Add(dRow);     
  23.     EmptyGridView.DataSourceID = null;     
  24.     EmptyGridView.DataSource = dTable;     
  25.     EmptyGridView.DataBind();     
  26.     EmptyGridView.Rows[0].Visible = false
  • 下一篇资讯: string与stream互相转换
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师