ASP.NET GridView中使用搜索框(SearchableGridView)

简介:

 

介绍:

我正在搜寻一种方法实现在ASP.NET GridView控件包含搜索框。我找不到一个完美的解决方案,决定自己去实现它。这里所以写出我的解决方案。

为什么使用这种方案?

您可以使用此种方案和实施行的表格过滤变得非常容易。搜索和过滤操作可以由公正处理的搜索事件引发。此外,该GridView还可以设置选项以显示行序列号,行的总数,并显示页眉和页脚即使没有行在GridView可用。(默认情况下,页眉和页脚是隐藏,GridView没有数据行。)

该解决方案

我做了什么

1.我扩展GridView和创建了一个SearchableGridView类。
2.
添加了一个TemplateColumn显示行数。

3. 在页脚,添加了控件来处理搜查事件。
4.
当开启搜索的时候,,传递搜索字符串给触发的事件。

代码:

1、通过创建了一个SearchableGridView来扩展GridView,实现在Gridview的页脚有一个搜索框.

 

public   class  NumberColumn : ITemplate
{
    
public   void  InstantiateIn(Control container)
    {
    }
}

 

SearchableGridView类中,我重写的OnInit函数添加模板的第一列显示的行序号,如果ShowRowNumber标记将被打开。

 

Code

 

当每一行创建时,OnRowCreated方法被执行。在此期间时,对创建的行类型的不同,在表尾,我们添加搜索控件和显示行数量label,在表身,添加行数,在表头,该添加列标题。

 

 

Code

 

SearchableGridViewSearchFilters属性设置的搜索选项的下拉列表的值。它的Text属性对应的显示名称在DropDownList和列表项的值属性是数据源的列名。

 

复制代码
public   void  SetFilter()
{
    _ddlFinder.Items.Clear();
    
// Copy the items to the dropdownlist
     foreach  (ListItem li  in  SearchFilters)
        _ddlFinder.Items.Add(li);
}
复制代码

 

现在,让我们进入到搜索的事件处理。为此,我创建了一个委托和事件SearchGrid,搜索按钮时被击中。搜索字符串形成使用语法_ddlFinder.SelectedValue + " like '" + _tbSearch.Text.Trim() + "%'".

 

 

Code

 

显示页脚时,当没有返回任何行
GridView的默认属性是隐藏的页眉和页脚时没有行被绑定到它。设置一个空项目模板只可以显示模板而不是页眉或页脚。在我们的情况,页脚,必须始终显示,不论绑定到SearchableGridView行数,因为搜索选项应该是可见的。要做到这一点,我不得不重写CreateChildControls方法如下:

 

Code

 

例子:
让我用一个例子帮助说明上面的控件。为此,我使用Northwind数据库中的客户表。

步骤1:创建与选择查询数据源dsCustomersSELECT CustomerID, CompanyName, Address, City, Country FROM Customers

步骤2:创建一个SearchableGridView实例和设置SearchFilters属性有关于的搜索选择项。

 

步骤3:添加两个隐藏字段hfSearchTexthfSort分别存储搜索文本和文本的排序。

4步:用SearchGrid事件来设置SearchableGridView数据源和过滤的搜索字符串。 hfSearchTexthfSort是隐藏的领域持有的搜索字符串和SearchableGridView排序字符串。BindData方法实现绑定的过滤和排序后的数据。

 

Code

 

结论
SearchableGridView
将是非常有用,当有一个表格中的数据行很大的时候。通过执行搜索没有太多麻烦。

翻译:http://www.codeproject.com/KB/webforms/SearchSortableGridView.aspx

代码:http://www.codeproject.com/KB/webforms/SearchSortableGridView.aspx

小弟第一次翻译文章,错误多多,请多多指出!

 

 





本文转自麒麟博客园博客,原文链接:http://www.cnblogs.com/zhuqil/archive/2009/11/18/1605672.html,如需转载请自行联系原作者

相关文章
|
4月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
69 0
|
4月前
|
SQL 开发框架 .NET
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
ASP.NET Web——GridView完整增删改查示例(全篇幅包含sql脚本)大二结业考试必备技能
66 0
|
开发框架 .NET 数据库连接
在ASP.NET中实现选中、编辑和删除GridView数据项
在ASP.NET中实现选中、编辑和删除GridView数据项
在ASP.NET中实现选中、编辑和删除GridView数据项
|
.NET 开发框架 索引
asp.net给Reaper和GridView添加序号
repeater添加序号列的方法 1、     2、     3、在中添加   function show() { var bj = document.all.tags("LABEL"); for (i=0;i   ASP.
921 0
|
JavaScript 前端开发 .NET
关于asp:GridView和dx:ASPxGridView固定表头的jquery代码封装
前几天有个项目要实现dx:ASPxGridView固定表头,就翻看了网上实现的方法。总结了一些方法。废话不多,先上个图,有图有真相           图1,dx:ASPxGridView的上面还有其他元素     图2    这是基于dx:ASPxGridView固定表头。
1256 0
|
Web App开发 SQL 前端开发
Asp.net中GridView使用详解(引)
GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改...
1201 0
|
Web App开发 SQL 前端开发
Asp.net中GridView使用详解(引)
GridView无代码分页排序 GridView选中,编辑,取消,删除 GridView正反双向排序 GridView和下拉菜单DropDownList结合 GridView和CheckBox结合 鼠标移到GridView某一行时改变该行的背景色方法一 鼠标移到GridView某一行时改...
968 0
|
7天前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
19 7