首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在jqgrid上实现搜索?

在jqGrid中实现搜索功能,可以使用jqGrid的内置搜索功能,也可以使用自定义搜索功能。以下是两种方法的详细说明:

方法一:使用jqGrid内置搜索功能

jqGrid提供了内置的搜索功能,可以通过以下步骤实现搜索功能:

  1. 在jqGrid初始化时,设置search选项为true,以启用搜索功能。
  2. 在需要搜索的列上设置searchoptions选项,以定义搜索选项。
  3. 在需要搜索的列上设置stype选项,以定义搜索类型。
  4. 调用jQuery("#grid_id").jqGrid('filterGrid', postdata, refresh)方法来执行搜索。

以下是一个示例代码:

代码语言:javascript
复制
jQuery("#grid_id").jqGrid({
    url: 'mydata.json',
    datatype: 'json',
    colNames: ['Column 1', 'Column 2', 'Column 3'],
    colModel: [
        { name: 'col1', searchoptions: { sopt: ['eq', 'ne', 'cn'] }, stype: 'text' },
        { name: 'col2', searchoptions: { sopt: ['eq', 'ne', 'cn'] }, stype: 'text' },
        { name: 'col3', searchoptions: { sopt: ['eq', 'ne', 'cn'] }, stype: 'text' }
    ],
    search: true,
    pager: '#pager'
});

jQuery("#grid_id").jqGrid('navGrid', '#pager', { search: true });

function searchGrid() {
    var postdata = jQuery("#grid_id").jqGrid('getGridParam', 'postData');
    jQuery("#grid_id").jqGrid('setGridParam', { search: true });
    jQuery("#grid_id").jqGrid('filterGrid', postdata, refresh);
}

方法二:使用自定义搜索功能

如果内置搜索功能不能满足需求,可以使用自定义搜索功能。以下是一个示例代码:

代码语言:javascript
复制
jQuery("#grid_id").jqGrid({
    url: 'mydata.json',
    datatype: 'json',
    colNames: ['Column 1', 'Column 2', 'Column 3'],
    colModel: [
        { name: 'col1', search: true },
        { name: 'col2', search: true },
        { name: 'col3', search: true }
    ],
    pager: '#pager'
});

jQuery("#search_button").click(function() {
    var search_col1 = jQuery("#search_col1").val();
    var search_col2 = jQuery("#search_col2").val();
    var search_col3 = jQuery("#search_col3").val();

    var postdata = jQuery("#grid_id").jqGrid('getGridParam', 'postData');
    postdata.filters = '{"groupOp":"AND","rules":[';

    if (search_col1) {
        postdata.filters += '{"field":"col1","op":"cn","data":"' + search_col1 + '"},';
    }

    if (search_col2) {
        postdata.filters += '{"field":"col2","op":"cn","data":"' + search_col2 + '"},';
    }

    if (search_col3) {
        postdata.filters += '{"field":"col3","op":"cn","data":"' + search_col3 + '"},';
    }

    postdata.filters = postdata.filters.slice(0, -1) + ']}';

    jQuery("#grid_id").jqGrid('setGridParam', { search: true, postData: postdata });
    jQuery("#grid_id").jqGrid('filterGrid', postdata, refresh);
});

在这个示例中,我们创建了一个搜索表单,包含三个搜索框,每个搜索框对应一个列。当用户点击搜索按钮时,我们使用jqGrid('getGridParam', 'postData')方法获取当前jqGrid的postData对象,然后根据搜索表单中的值设置filters属性,最后调用jqGrid('setGridParam', { search: true, postData: postdata })jqGrid('filterGrid', postdata, refresh)方法来执行搜索。

以上是在jqGrid上实现搜索的两种方法,可以根据具体需求选择合适的方法。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 《Spring Boot 入门及前后端分离项目实践》系列介绍

    本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 个部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 项目实践开发。Spring Boot 介绍、前后端分离、API 规范等内容旨在让读者更加熟悉 SpringBoot 及企业开发中需要注意的事项并具有使用 SpringBoot 技术进行基本功能开发的能力;这最后的项目实战为课程的主要部分,我会带着大家实际的开发一个前后端分离的 Spring Boot 实践项目,让大家实际操作并从无到有开发一个线上项目,并学习到一定的开发经验以及其中的开发技巧,旨在让读者具有将 Spring Boot 真正应用于项目开发的能力;

    01

    人类都在搜什么?谷歌公布2020年度搜索热榜,「新冠病毒」高居榜首

    ---- 新智元报道   来源:谷歌 编辑:T 【新智元导读】谷歌更新2020年的搜索热榜啦!快来看看今年大家都在关心什么?2020年无疑对全世界人民来讲都是最特殊的一年。「新冠病毒」席卷全球,带走了无数人的生命和无数的工作,无疑是全球搜索量最高的关键词。而今年的其他热点也都在热榜中一一反映了出来,如「科比去世」、「美国大选」等。 今年的谷歌搜索热榜公布啦,位居全球搜索榜首的会是什么关键词呢? 好吧,其实不用猜都知道,那自然是「新冠病毒」了。 今年的榜单与往年不同,这些搜索趋势关键词反映的不是搜索量

    02

    14.如何为Cloudera Manager集成OpenLDAP认证

    Fayson在前面一系列文章中介绍了OpenLDAP的安装及与CDH集群中各个组件的集成,包括《1.如何在RedHat7上安装OpenLDA并配置客户端》、《2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户》、《3.如何RedHat7上实现OpenLDAP的主主同步》、《4.如何为Hive集成RedHat7的OpenLDAP认证》、《5.如何为Impala集成Redhat7的OpenLDAP认证》、《6.如何为Hue集成RedHat7的OpenLDAP认证》、《7.如何在RedHat7的OpenLDAP中实现将一个用户添加到多个组》、《8.如何使用RedHat7的OpenLDAP和Sentry权限集成》、《9.如何为Navigator集成RedHat7的OpenLDAP认证》、《10.如何在OpenLDAP启用MemberOf》、《11.如何为CDSW集成RedHat7的OpenLDAP认证》、《12.OpenLDAP管理工具Phpldapadmin的安装及使用》和《13.一键添加OpenLDAP用户及Kerberos账号》。本篇文章Fayson主要介绍如何为Cloudera Manager集成OpenLDAP认证。

    02
    领券