`
raisun_1988
  • 浏览: 114293 次
  • 性别: 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

    使用RecyclerView实现带Header和Footer的GridView

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

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

    CommonPullToRefresh

    下拉刷新支持大部分view:ListView、ScrollView、WebView等,甚至一个单独的TextView 加载更多目前支持ListView、RecyclerView、...支持自定义header以及footer 增加SwipeRefreshLayout刷新方式,同样支持加载更多

    RecyclerView+SwipeRefreshLayout

    下拉刷新支持大部分view:ListView、ScrollView、WebView等,甚至一个单独的TextView 加载更多目前支持ListView、RecyclerView、...支持自定义header以及footer 增加SwipeRefreshLayout刷新方式,同样支持加载更多

    android-GridViewWithHeaderAndFooter:android-GridViewWithHeaderAndFooter

    带有页眉和页脚的 GridView 该库包含在CUBE-SDK : : 。 Demo 在这里: : 。 Maven &lt; groupId&gt;in.srain.cube &lt; artifactId&gt;grid-view-with-header-footer &lt; type&gt;jar &lt; version&gt;1.0.11 Gradle compile ' in....

    AndroidStaggeredGrid-master

    AndroidStaggeredGrid是etsy实现的一个android瀑布流控件,没有继承ListView和Gridview 设置列数,可以分别为横屏和竖屏指定不同的值 屏幕方向改变时保持项的添加...支持添加header和footer 支持OnScrollListener接口

    android下拉刷新框架源代码

    其实网上有很多下拉刷新的例子,但都不是很共通,特别是以listview添加header或footer居多,这很明显无法应用到GridView这样的布局。基于此,我们参考前辈的代码的基础上,实现了一个还算比较共通的框架,这个框架...

    GridListAdapter

    但是Android本身的GridView是不带footer和header的。有google的程序员用GridView实现了带footer和header并放到的github上,但是本身并不好用。于是我就萌发了用ListView实现GirdView的想法。我写完之后在同事的帮助...

    WebApplication1.zip

    1、采用母版页进行网站布局,多页面复用header和footer的布局,以减少重复代码编写 2、使用DataList,自定义格式展示全部商品数据,并编写代码实现分页 3、点击商品,对应使用DetailsView展示商品详细信息 4、使用...

    带头部的网格GridView视图

    该源码是一个带头部的网格GridView视图,源码android-GridViewWithHeaderAndFooter,带有头部(header)和脚部(footer)的GridView。

    Android-SimpleView:项目常用自定义控件集合

    提供接口自定义loadmore监听显示和隐藏加载更多的footer——上拉刷新的GridView,提供接口自定义loadmore监听显示和隐藏加载更多的footer(解决原生GridView不支持setHeader和footer问题)——不滚动的GridView——带...

    PullToRefreshDemo

    其实下拉刷新网上有很多例子,但多数都不能很好的共通,而且局限性也很多,以在ListView中添加header或footer为最多,但这样的例子如何应用到GridView中?但我们这个框架就可以,严格来说,你可以把任何的类型的View...

    Android代码-XRefreshLayout

    support custom refresh header and footer , which means you can make you wanderful animation ! not support ListView, GridView, ScrollView ! Screenshot refresh RecyclerView for StaggeredGridLayo

    zxing.java源码解析-OpenProject:常用三方库收集,Android高级面试

    下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动,具有极强的扩展性,集成了几十种炫酷的Header和 Footer。 项目地址: APP示例: 效果图: ...

    GridListViewAdapters:该库提供了GridAdapters(ListGridAdapter&CursorGridAdapter),使您可以在android.widget.ListView中以网格卡的方式绑定数据,还提供了许多与GridListView相关的功能

    GridListViewAdapters 该库使您能够在GridView中实现GridView,如ListView中的卡片布局,并添加了分页功能,Header-Footer视图添加功能,还简化了List和Cursor数据的实现。 该库是根据[ViewHolder]( )设计模式设计...

    Report machine 2.4

    十三、最新增加GridView,类似于电子表格,非常非常适合制作复杂报表 最新更新和问题解答请访问论坛:www.pcjingning.com 最后更新 -------- 新版本:2002/05/25更新,欢迎下载(有免费版下载) --Form...

    rm2.6正式版本

    可以设置每页打印记录数, - TRMBandView增加属性PrintColFirst,当Column&gt;1时,可以选择先列后行还是 先行后列打印, - 修正没有安装打印机时的错误, - 打印预览功能有些改变和增强. &lt;br&gt; ...

    Android--UI-新手必备源码master.zip

    包括Android布局,弹窗,配色,单击事件,UI,精美炫酷的activity切换动画和空间动画,是新手必备的源码,内含相关的Dome 25件。 - - 文件夹 PATH 列表 卷序列号为 4E8D-6931 C:. │ .txt │ Android-UI-新手必备...

Global site tag (gtag.js) - Google Analytics