`
raisun_1988
  • 浏览: 117990 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

GridView空记录时显示Header和Footer

    博客分类:
  • .Net
阅读更多

也有段日子没写什么东西了,也是因为以前闲了好长时间,最近一下又有活干了,也不是什么新任务,还是接着原来没做完的工作重新设计和动工,对原来做好的曲线图形开发一个常用属性的设置,普通用户就可以通过页面对图形显示的效果简单修改,而不单单只是程序员在程序的控件中修改。

  说实话具体的工作也没多大难度,主要在问题就在此维护工具的界面的设计和程序架构设计,一旦这方面做不好,后期进行扩展将会存在大量问题,有可能需要重新设计和开发,核心也是由于项目组中没有经验丰富的人带领,所以自己和其余几个人做的都很头大。

  维护工具界面主要采用GridView进行数据的增、删、改、显示,并且所有的数据都保存在Xml文件中,没有采用数据库对数据进行存储,所以Xml配置文件的设计需要合理的格式。

  看到标题,大家也会明白GridView中采用了模板列

    <ItemTemplate> 用于显示数据控件Label

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

    <FooterTemplate> 用于增加的时候显示的控件,根据所需选择

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

  代码如下:

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

 

  经过自己的不懈努力和网上的资料,最后总算是找到了一个解决方法,也达到了想要的结果。

  在GridView的PreRender事件中,判断 Rows.Count 是否等于0,再执行函数renderEmptyGridView函数,这样也就实现了新增的功能。

  具体代码如下:

代码

1 protected void GridView1_PreRender(object sender, EventArgs e) 2 { 3 if (GridView1.Rows.Count == 0) 4 { 5 renderEmptyGridView(GridView1, "csmc, csbl, cslx, sfjl, mrz, sql"); 6 } 7 } 8 public static void renderEmptyGridView(GridView EmptyGridView, string FieldNames) 9 { 10 //将GridView变成只有Header和Footer列,以及被隐藏的空白资料列 11 DataTable dTable = new DataTable(); 12 char[] delimiterChars = {','}; 13 string[] colName = FieldNames.Split(delimiterChars); 14 foreach (string myCol in colName) 15 { 16 DataColumn dColumn = new DataColumn(myCol.Trim()); 17 dTable.Columns.Add(dColumn); 18 } 19 DataRow dRow = dTable.NewRow(); 20 foreach (string myCol in colName) 21 { 22 dRow[myCol.Trim()] = DBNull.Value; 23 } 24 dTable.Rows.Add(dRow); 25 EmptyGridView.DataSourceID = null; 26 EmptyGridView.DataSource = dTable; 27 EmptyGridView.DataBind(); 28 EmptyGridView.Rows[0].Visible = false; 29 }

 

 

http://www.itpob.cn

分享到:
评论

相关推荐

    使用RecyclerView实现带Header和Footer的GridView

    - 创建对应的ViewHolder类,例如HeaderViewHolder、FooterViewHolder和ItemViewHolder,分别处理Header、Footer和列表项的视图绑定。 3. **添加Header和Footer** - 在Adapter的`onCreateViewHolder`方法中,根据`...

    如何自定义GridView控件的表头

    对于复杂的需求,还可以考虑使用Header/Footer支持的库,如`androidx.recyclerview.widget.RecyclerView`配合`GridLayoutManager`和`SectionedRecyclerViewAdapter`。 总结,自定义GridView表头的关键在于创建一个...

    Gridview高级使用技巧

    7. **Header和Footer** 如果需要在GridView头部或尾部添加额外的信息或操作按钮,可以通过`addHeaderView()`和`addFooterView()`方法实现。这样,用户可以在浏览数据的同时快速访问这些元素。 8. **优化性能** 为...

    gridview课件

    - 使用Header和Footer,将额外的视图添加到GridView的顶部或底部。 综上所述,这个"gridview课件"主要教你如何利用GridView这一强大的控件来布局和展示数据,从基础的设置到高级的优化,覆盖了开发过程中可能遇到...

    Gridview 分组显示,支持停靠,上拉下拉刷新,

    - 然后,为GridView添加Header和Footer,将标题视图添加进去。 - 最后,集成SwipeRefreshLayout,将GridView置于其内部,并监听刷新事件,以便在用户上拉时触发数据加载或更新。 5. **示例代码**: ```java // ...

    ScrollView和ListView和GridView冲突解决之自定义ListView和GridView

    4. **使用Header和Footer**:如果需要在ListView或GridView上方添加额外内容,可以使用addHeaderView或addFooterView方法,而不是嵌套在一个ScrollView中。 自定义ListView和GridView的步骤通常包括: 1. **创建...

    Gridview控件的使用详解

    2. `RowCreated`(包括Header、DataRow、Footer和Pager行) 3. `RowDataBound` 总结来说,GridView控件提供了丰富的功能和事件,使开发者能够灵活地展示、编辑和管理数据。理解其生命周期和事件机制对于优化和...

    ScrollView和ListView和GridView冲突解决

    4. 使用Header或Footer:如果只是希望ScrollView包含ListView或GridView的一部分,可以在ListView或GridView中添加头部或底部视图,而不是将整个组件放入ScrollView。 5. 利用 Framelayout:将ScrollView和ListView...

    ListViewGridView填充效果

    - **Header和Footer**:可以添加Header和Footer视图在ListView和GridView的顶部和底部,丰富布局结构。 4. **性能优化** - **ViewHolder模式**:为了提高ListView和GridView的滚动性能,开发者通常会采用...

    Node.js-头尾GridView支持AUTOFIT模式头尾模式有两种无反射代码。

    描述中的“头尾GridView,支持AUTO_FIT模式,头尾模式有两种,无反射代码”指的是在Android开发中,GridView的一种定制实现,它增加了头尾视图(Header和Footer)的功能,并且具备自动适应(AUTO_FIT)功能。...

    GridView的页眉页脚

    在用户界面设计中,为了提升用户体验,我们经常会为GridView添加页眉(Header)和页脚(Footer)来增强视觉效果和功能。这篇文档将详细讨论如何在GridView中实现页眉和页脚的渐变模糊特效。 首先,理解页眉和页脚的...

    GridView千变万化

    GridView虽然不直接支持Header和Footer,但可以通过在Adapter的`getView()`方法中判断位置来实现。如果位置为0,则返回Header;如果位置等于数据集长度加上Header数量,则返回Footer。 10. **分页加载** 如果数据...

    精致的GridView控件源码

    9. **Header和Footer**:GridView支持添加头部和尾部视图,这可以通过调用`addHeaderView()`和`addFooterView()`方法实现。 10. **自定义GridCell**:每个单元格都可以是一个复杂的布局,包含多个子View,并通过...

    在ScorllView中ListView和GridView冲突解决方案

    5. **使用Header/Footer**:如果只是想在ListView或GridView上方添加一些静态内容,可以使用Header或Footer,而不是将它们放入ScrollView。 最后,对于自定义View和ViewGroup,理解MeasureSpec的工作原理至关重要,...

    可以添加头脚布局的 gridview

    在标题"可以添加头脚布局的 GridView"中提到的功能,是扩展了GridView的基本功能,使其能够像ListView那样支持头部(Header)和尾部(Footer)布局。这种扩展允许开发者在GridView的顶部和底部插入额外的视图,以...

    ListView嵌套Gridview的demo

    ListView提供了Header和Footer的添加功能,以及OnItemClickListener和OnItemLongClickListener等事件监听。 接着,我们看GridView。GridView类似于ListView,但其数据项是以网格形式排列的,每个数据项占据相同的...

    GridView绝技,值得一看

    11. **Header和Footer**:在GridView中添加Header和Footer视图,可以实现类似TableLayout的功能,增强布局结构。 以上只是对"GridView绝技"可能涉及的一些高级话题的概述,实际文档中可能还包括更多实用技巧和案例...

    BGABaseAdapter-Android:在 AdapterView 和 RecyclerView 中通用的 Adapter 和 ViewHolder。RecyclerView 支持 DataBinding 、多种 Item 类型、添加 Header 和 Footer。RecyclerView 竖直方向通用分割线 BGADivider

    BGARecyclerViewAdapter 和 BGAViewHolderHelper 用于简化 RecyclerView 的适配器的编写,支持多 Item 类型,支持添加多个 Header 和 Footer,回调接口里的索引位置已经在库里处理了,不需要开发者自己减去 Header ...

    GridView实用技巧

    虽然GridView本身不支持直接添加Header和Footer,但可以通过自定义Adapter实现。在Adapter的`getView()`方法中,根据position判断是Header、Footer还是正常的Item,并返回相应的View。 10. **选择模式** GridView...

Global site tag (gtag.js) - Google Analytics