zoukankan      html  css  js  c++  java
  • 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

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

     



    (全文完)


    以下为广告部分

    您部署的HTTPS网站安全吗?

    如果您想看下您的网站HTTPS部署的是否安全,花1分钟时间来 myssl.com 检测以下吧。让您的HTTPS网站变得更安全!

    SSL检测评估

    快速了解HTTPS网站安全情况。

    安全评级(A+、A、A-...)、行业合规检测、证书信息查看、证书链信息以及补完、服务器套件信息、证书兼容性检测等。

    SSL证书工具

    安装部署SSL证书变得更方便。

    SSL证书内容查看、SSL证书格式转换、CSR在线生成、SSL私钥加解密、CAA检测等。

    SSL漏洞检测

    让服务器远离SSL证书漏洞侵扰

    TLS ROBOT漏洞检测、心血漏洞检测、FREAK Attack漏洞检测、SSL Poodle漏洞检测、CCS注入漏洞检测。

  • 相关阅读:
    python+selenium+unnitest写一个完整的登陆的验证
    selenium+python启动Firefox浏览器失败问题和点击登陆按钮无效问题
    WEB请求处理
    MySQL数据库实现分页查询的SQL语句写法!
    容错性测试
    如何简单实现接口自动化测试(基于 python) 原博主地址https://blog.csdn.net/gitchat/article/details/77849725
    python里如何获取当前日期前后N天或N月的日期
    java:面向对象(接口(续),Compareble重写,Comparator接口:比较器的重写,内部类,垃圾回收机制)
    java:面向对象(多态,final,抽象方法,(简单工厂模式即静态方法模式),接口)
    Java:面向对象(继承,方法的重写(overide),super,object类及object类中方法的重写,父子类代码块执行顺序)
  • 原文地址:https://www.cnblogs.com/zhuqil/p/1605672.html
Copyright © 2011-2022 走看看