大大毛 的笔记

  DDM's Note

哪怕没有办法一定有说法,
就算没有鸽子一定有乌鸦,
固执无罪 梦想有价,
让他们惊讶.

posts - 14, comments - 23, trackbacks - 0, articles - 58
   :: 首页 ::  :: 联系 ::  :: 管理

GridView在DataTable空行时不显示的处理

Posted on 2006-09-25 02:00 大大毛 阅读(3347) 评论(1)  编辑  收藏 所属分类: ASP.NET

   问题:

      GridView控件应用很是广泛,通常将它与DataSourceControl搭配使用,当然也可以手工指定DataSource属性来完成数据绑定。如果数据源返回一个空行的数据集(例如查询不到指定记录等)时,将会出现两种情况:
      1.当GridView未指定<EmptyDataTemplate>或EmptyDataText属性时,控件将不会被最终生成,网页上的表现为空白,这样不仅感觉不爽,而且很容易造成布局的变形。
      2.如果指定了<EmptyDataTemplate>或EmptyDataText属性,网页上将最终产生一个table元素,它具有一行一格,可以显示出设置的提示信息,但是这种情况下该table将不会显示出表头来。
      通常希望的是,即使数据源返回一个空行的数据集,但是原有的Table元素也应该被显示出来,它应该带一个表头行,以及一个空白行。


   解决办法:

      通过手工向数据源添加一个新行即可解决。在此过程应该处理好以下几个方面的事情。
      1.在 New 一行时,如果包含主键列,则该列的值会被自动赋值(如 int 列会被赋值 0 )。对此应该手工将新行的每一列都赋值为 DBNull.Value ;
      2.由于可能存在有非空约束,会造成插入失败,因此必须手工将每一列的 AllowDBNull 属性重新设定
      以下示例 GridView 绑定至 ObjectDataSource 时的处理代码:
Selected事件

      效果示意如下:
标题1标题2标题...
   

      就此来说效果并不是十分理想,如果能够实现以下的效果那就更好了:
标题1标题2标题...
没有查找到符合条件的记录


      为达成目的,还需要在 GridView 中加一点小改进,处理一下那个空行。

DataBound事件

      如此一来,配合 GridView 的 EmptyDataText , EmptyDataRowStyle 即可以实现令人满意的效果,见下图。

            GridView空数据集效果图


评论

# re: GridView在DataTable空行时不显示的处理  回复  更多评论   

2008-08-13 19:15 by bejon阿牛
谢谢!

只有注册用户登录后才能发表评论。


网站导航:
 

i am ddm