• 在 jQuery Repeater 中检索过滤数据


    很多时候, 我们都会用到搜索的功能, 这次将向大家介绍 Repeater 如何设置检索数据.

    由于精力有限, 不能在多个博客中保证文章的同步, 可在如下地址查看最新内容, 请谅解:

    http://code.google.com/p/zsharedcode/wiki/JERepeaterSearch

    请到 Download 下载资源JQueryElement 示例下载一节下载示例代码

    本文将详细的讲解如何在 Repeater 中检索数据信息, 目录如下:

      * 准备

      * 设置 FilterTemplate

      * 设置 FilterField 和 FilterFieldDefault

      * 调用 setfilter 和 filter 函数

    准备

    请先查看 30 分钟掌握无刷新 Repeater 或者准备一节的内容.

    设置 FilterTemplate

    RepeaterFilterTemplate 属性中, 包含用于填写搜索条件的元素, 比如文本框, 日期框等. 此外, 也可以包含搜索按钮:

    <je:Repeater ID="productList" runat="server"        ...    >

    <FilterTemplate>
    <tr>
    <td>
    <input type="text" size="10"
    je-id
    ="productname"
    je-value
    ="productname"/>
    </td>
    <td>
    <input type="text" size="5"
    je-id
    ="model"
    je-value
    ="model"/>
    </td>
    <td>
    <input type="text" size="4"
    je-id
    ="price1"
    je-value
    ="price1"/>
    -
    <input type="text" size="4"
    je-id
    ="price2"
    je-value
    ="price2"/>
    </td>
    <td>
    <input type="text" size="3"
    je-id
    ="amount"
    je-value
    ="amount"/>
    </td>
    <td>
    <input type="text" size="10"
    je-datepicker
    ="dateFormat='yy-mm-dd';changeMonth=true;changeYear=true"
    je-id
    ="manufactureDate1"
    je-value
    ="manufactureDate1"/>
    -
    <input
    je-datepicker="dateFormat='yy-mm-dd';changeMonth=true;changeYear=true"
    type
    ="text" size="10"
    je-id
    ="manufactureDate2"
    je-value
    ="manufactureDate2"/>
    </td>
    </tr>
    <tr je-class="{highlight}">
    <td colspan="5" align="right">
    <span je-button=";" onclick="javascript:clearCondition();">清空</span>
    <span je-button=";" je-onclick="filter">搜索</span>
    </td>
    </tr>
    </FilterTemplate>

    </je:Repeater>

    代码中, 使用了 input 元素来添加文本框和日期框, 通过 je-id 来与 FilterField 属性中的搜索字段关联, je-value 则是表示使用指定搜索条件来初始化.

    上面还使用了 je-datepicker 创建日期框, 至于如何使用 je-<jQueryUI 插件名> 创建更多 jQueryUI 插件, 可以参考 在 jquery repeater 中添加设置日期,下拉,复选框等控件.

    通过 je-buttonje-onclick, 创建了用于搜索的按钮, je-onclick 被指定为 filter, 也就是将执行 repeaterfilter 方法, 可以参考 30 分钟掌握无刷新 Repeater 的特殊绑定一节.

    设置 FilterField 和 FilterFieldDefault

    FilterField 中设置的字段名, 将作为参数传递给服务器端的方法:

    <je:Repeater ID="productList" runat="server"
    FilterField
    ="['productname','price1','price2']"
    FilterFieldDefault
    ="['',-1,-1]"
    FillAsync-Url
    ="product.asmx"
    FillAsync-MethodName
    ="GetProductList">

    <FilterTemplate>
    <tr>
    <td>
    <input type="text" size="10"
    je-id
    ="productname" je-value="productname"/>
    </td>

    <td>
    <input type="text" size="4"
    je-id
    ="price1" je-value="price1"/>
    -
    <input type="text" size="4"
    je-id
    ="price2" je-value="price2"/>
    </td>

    </tr>
    </FilterTemplate>

    </je:Repeater>

    代码中, 通过 FilterField 设置了 3 个用于搜索的字段 productname, price1, price2, 并通过 FilterFieldDefault 来设置这些搜索条件的默认值, 因此服务器端方法 GetProductList 可以采用如下的形式:

    public SortedDictionary<string, object> GetProductList (
    int pageindex, int pagesize,
    string productname, float price1, float price2 )
    {

    if ( price1 != -1 )
    ...

    if ( price2 != -1 )
    ...

    }

    如果 price1 和 price2 等于 -1, 则表示用户没有设置关于价格的搜索条件. 至于服务器端返回数据的格式, 请参考 30 分钟掌握无刷新 Repeater 的请求/返回数据的格式一节.

    调用 setfilter 和 filter 函数

    经过上面简单的设置, 已经可以通过 FilterTemplate 中的搜索按钮来检索数据, 此外, 还可以使用另一个方法:

    <input id="myproductname" type="text" size="10"/>

    <je:Button ID="cmdSearch" runat="server" Label="搜索 2" Click="
    function(){
    productList.__repeater('setfilter', 'productname', $('#myproductname').val());
    productList.__repeater('filter');
    }
    "
    >
    </je:Button>

    上面的示例中, id 为 myproductname 的文本框用来输入搜索的产品名称, 而在按钮的 Click 事件中, 调用 repeatersetfilter 方法来将 myproductname 中的值设置到 repeater 的过滤条件中, 调用 filter 方法来检索数据.

    JQueryElement 是开源共享的代码, 可以在 http://code.google.com/p/zsharedcode/wiki/Download 页面下载 dll 或者是源代码.

    实际过程演示: http://www.tudou.com/programs/view/HJmCQRpGQEg/, 建议全屏观看.

  • 相关阅读:
    C语言与数据库操作入门(Win版)
    用C语言操作MySQL数据库,进行连接、插入、修改、删除等操作
    c语言连接mysql数据库的实现方法
    linux shell 之 crontab(定时任务)详解
    Centos7下面配置静态IP
    安装php
    Deep Learning
    Deep Learning
    Deep Learning
    数据分析
  • 原文地址:https://www.cnblogs.com/zoyobar/p/JE_22.html
Copyright © 2020-2023  润新知