最近需要一个gridview能够有不错的搜索功能,最好还是个GridView的扩展控件以后可以直接使用。我试着在CSDN上搜了一下下面这两篇文章都是带Search功能的GridView。
http://blog.csdn.net/xiandawang/archive/2007/05/25/1625529.aspx
http://blog.csdn.net/xiandawang/archive/2007/05/25/1625529.aspx
但是它们不是很好。后来终于看到一个SearchGridview控件,挺不错的介绍给大家。
我这直接介绍一下它的实现吧。
1. 写了一个GridView的扩展控件SearchabbleGridView类。
2. 添加一个TemplateColumn列来显示数据的条数。
3. 在GridView的footer添加一个搜索功能。
4. 当点击那个搜索按钮时触发一个事件。
代码部分:
1. GridView的扩展类:
2. 创建一个模板列来显示每行记录的序列号。
3. 在SearchableGrivView中我重载了OnInite方法来添加序列号的列为GridView的第一列。这里有个标志位ShowRowNumber如果是true的话才显示序列号列。
4. 方法OnRowCreated在每一行被创建的时候会被调用。通过判断当前行的RowType可以在Footer中添加总的行数和搜索模块。
5. SearchGridView的SearchFilters属性是用来给能够Search字段的下拉菜单来帮顶数据的。
6. 现在我们看一下当Search事件发生时我们如何来操作的。这里创建了事件SearchGrid,当search按钮被点击时时它会触发。然后搜索字段的形式会如下:
_ddlFinder.SelectedValue +
" like '" + _tbSearch.Text.Trim() +
"%'".
7. 重载CreateChildControls方法让footer显示当没有记录符合查询条件时。
如何使用这个控件呢。步骤如下:
1. 选择一个数据源。比如sqldatasource.
2. 拖入一个SearchableGridView然后设置属性看哪列需要搜索。
3. 添加两个隐藏字段hfSearchText和hfSort来存储搜索字段和排序字段。
4. 事件的代码完善。
希望对你有所帮助。
代码下载