jqGrid 多选上的 PrettyCheckable

2023-11-30

我有一个jqGrid带有我用 CSS 自定义的多选复选框的表格和漂亮可检查.

要自定义我设置的表格的所有复选框.prettyCheckable()如下:

jQuery(document).ready(function($){
    $("input[type=checkbox]").change(function() {
        $(this).triggerHandler("click");
    }).prettyCheckable();
}); 

但这行不通。只有第一个复选框具有样式。

jqGrid

所以我尝试插入该函数.prettyCheckable() into loadComplete of jqGrid,并按照建议Oleg #here,通过添加检查类<a>.

这是我的 jqGrid 设置:

$(document).ready(function() {
     $('#searchForm').ajaxForm(function() {
        var _data = $('#searchForm').serialize();
        $('#ResultsTable').jqGrid().setGridParam({
            url: '${searchUrl}' + _data,
            loadComplete: function () {
                $(this).find("input.cbox").prettyCheckable();
            }
        }).trigger("reloadGrid")
        return true;
    });
    jsonTable('ResultsTable', 'ResultsPager', '${searchUrl}', 'searchForm',
        {id: 'code'},
        ['Code', 'Description', 'CF'],
        [{name: 'code', index: 'code', width: 55},
        {name: 'description', index: 'description', width: 90},
        {name: 'CF', index: 'CF', width: 80},
        function(id) {
            var selRows = $(this).jqGrid('getGridParam', 'selarrrow');
            $('#edit').toggle(selRows.length == 1);
            $('#delete').toggle(selRows.length > 0);
            $('#editForm #code').val(selRows);
            $('#deleteForm #code').val(selRows);
            //$("#jqg_" + $.jgrid.jqID(this.id + "_" + id)).next("a").toggleClass('checked');
        },
        function(aSel, selected) {
            $('#edit').toggle(false);
            $('#delete').toggle(selected);
            if (selected) {
                $('#editForm #code').val(selRows);
                $('#deleteForm #code').val(selRows);
            }
        },
        true
    )      
});

但这样也行不通,我该如何解决这个问题呢?

我在这里创建了一个小演示:jsfiddle.net/LStvX/1
任何帮助表示感谢,谢谢!


首先,我发现 jqGrid 中其他插件的集成很有趣。我没用过漂亮可检查前。经过同样的分析后如何prettyCheckable我创作的作品the demo这展示了这种集成的一个例子。结果如下图所示

enter image description here

要理解代码,我们应该理解这一点prettyCheckable使用多选复选框转换单元格的原始 HTML 片段

enter image description here

在更复杂的结构中

enter image description here

我觉得不好prettyCheckable总是创建空的<label>增加列高度的元素。所以我添加了使所有<label>元素隐藏。

下一个问题是prettyCheckable uses <a>具有可选类的元素"checked"用于复选框并通知原始复选框(初始化后隐藏prettyCheckable) per change事件,但 jqGrid 等待click行或复选框上的事件并且没有反应change event.

我现在跳过一些不太有趣的技术细节。下面是演示代码中最重要的部分

$("#list").jqGrid({
    ...
    multiselect: true,
    multiselectWidth: 28,
    onSelectAll: function (aRowids, status) {
        var i, l = aRowids.length, $a,
            selector = "#jqg_" + $.jgrid.jqID(this.id) + "_";

        for (i = 0; i < l; i++) {
            $a = $(selector + $.jgrid.jqID(aRowids[i])).next("a");
            if (status) {
                $a.addClass("checked");
            } else {
                $a.removeClass("checked");
            }
        }
    },
    beforeSelectRow: function (rowid, e) {
        if (e.target.nodeName.toUpperCase() === "A" &&
                $(e.target).prev("input").hasClass("cbox")) {
            $(e.target).prev("input").click();
        }
        return true;
    },
    onSelectRow: function (rowid, state) {
        var $a = $("#jqg_" + $.jgrid.jqID(this.id + "_" + rowid)).next("a");
        if (state) {
            $a.addClass("checked");
        } else {
            $a.removeClass("checked");
        }
    },
    loadComplete: function () {
        var $checkboxes = $(this).find("input.cbox");
        $checkboxes.prettyCheckable();
        $checkboxes.siblings("label").hide();
    }
});
$("#cb_" + $.jgrid.jqID($grid[0].id)).change(function() {
    $(this).triggerHandler("click");
}).prettyCheckable();
$("#cb_" + $.jgrid.jqID($grid[0].id)).siblings("label").hide();

我使用了额外的 CSS 设置(请参阅答案) 增加列标题的高度

th.ui-th-column div {
    white-space: normal !important;
    height: auto !important;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

jqGrid 多选上的 PrettyCheckable 的相关文章

随机推荐

  • 我可以将 CSS 应用于 iframe 中的元素吗?

    我经常看到使用包含外部站点的 iframe 的网站 以及包含供用户使用的 JavaScript 功能的顶部框架 例如用户分析软件 Digg bar 等 对于尝试类似的东西有什么建议吗 如果知道的话那就太好了 不 不是来自outsideifr
  • 在 Jenkins 中远程触发构建

    我曾尝试通过在提交挂钩中使用此 URL 来触发我的 Jenkins 项目 curl http jenkins server job job name build token TOKEN 并且没有被触发 但是当我在网络浏览器中输入这个 URL
  • 如何使用 Codeigniter 从数据库检索数据并将其显示在 html 表格中

    任何人请帮助我检索数据库数据以及如何在 html 表中查看它 我给出的编码是否正确 如果不正确 你能说出我必须如何给出吗 以便在 html 表中查看它 控制器 class edit content extends CI Controller
  • 如何获取传递给 multiprocessing.Process 的函数的返回值?

    在下面的示例代码中 我想获取函数的返回值worker 我该怎么做呢 这个值存储在哪里 示例代码 import multiprocessing def worker procnum worker function print str proc
  • 从 Mac 向 iPhone/iPad/iPod touch 发送通知

    我目前销售一款仅适用于 Mac 的生产力工具 该工具使用视觉和音频通知来提醒用户正在发生的某些事件 我已经开始规划该 Mac 程序的 iPhone 和 iPad 版本 并希望能够提供从 Mac 到 iPhone 的通知服务 例如iPhone
  • 使用 LINQ 获取配对集

    当我有一个清单时 IList
  • 如何在 map() 中使用异步代码(Flutter、Firestore)

    我正在使用 Flutter 和 Firestore 插件开发一个群聊应用程序 从数据库获取数据并将快照转换为消息列表完全可以正常工作 但现在我想将数据库中的 uid 转换为用户名 uid 及其用户名保存在数据库中 这是我的代码 final
  • 使用 XSLT 2.0 的两阶段转换

    我正在尝试将 CSV 文件作为输入并将其转换为 XML 我是 XSLT 新手 我找到了一种将 CSV 转换为 XML 的方法 使用来自安德鲁韦尔奇 像这样 输入 CSV 文件 car manufacturer model color pri
  • yaml 中的“>-”和“|-”有什么区别?

    我想确切地知道 gt 和 之间的区别 特别是在 kubernetes yaml 清单中 折叠块标量中的换行符 gt 受到行折叠 文字块标量中的换行符 不是 行折叠将非空行之间的单个换行符替换为空格 并且在空行的情况下 将周围非空行之间的换行
  • ASP.NET Core执行Linux shell命令

    有没有办法从 ASP NET Core 应用程序中执行 Linux shell 命令并将值返回到变量中 目前最好的可能性似乎是使用预发布版SSH Net Core https www nuget org packages SSH Net C
  • 使用 PHP 脚本进行 ERR_CONNECTION_RESET

    我有一个 PHP 脚本 可以下载和处理一些文件 有时文件数量非常大 因此需要一些时间 但是 当有大量文件需要处理时 连接会中断并出现 ERR CONNECTION RESET 错误 Chrome 这是我的配置 upload max file
  • 从网站上的按钮下载文件的 Python 脚本

    我想通过单击以下网址中的 导出到 Excel 按钮来下载 xls 文件 https apps tampagov net CallsForService Webapp Default aspx type TPD 更具体地说 按钮 name c
  • offsetTop 与 jQuery.offset().top

    我读过offsetLeft and offsetTop不能在所有浏览器中正常工作 jQuery offset 应该为此提供一个抽象 以提供正确的值 xbrowser 我想要做的是获取元素被单击的位置相对于元素左上角的坐标 问题是jQuery
  • 在 iOS 上读取 sms.db 和 call_history.db 文件?

    我正在为越狱的 iPhone 5s iOS 7 1 1 开发一个应用程序 以获取存储在相应 db 文件中的通话日志和消息 我有一些疑问 我有一个有效的证书 配置文件 并且我的应用程序是使用此配置文件签名的 因此是否有必要删除此配置文件并使用
  • 错误:控制到达非 void 函数的末尾

    我在学习C 我从教科书上复制了这段代码 在编译代码时 最后出现错误 错误说 控制到达非 void 函数的末尾 它位于代码的末尾 include ComplexNumber hpp include
  • 限制线程数和 Java 并发

    我找不到使用最新 JAVA 并发例程的具体案例的示例 我打算使用threads处理可能包含 0 到数千个请求的开放队列中的项目 我想限制在任何给定时间都有不少于 0 且不超过 10 个线程处理队列项目 是否有针对这种特定类型案例的 Java
  • 如何使用 JqGrid 更改 select2 下拉列表的选定值?

    我用的是奥列格的选择2演示 但我想知道是否可以更改下拉菜单中当前选择的值 例如 如果加载的四个值是 Any Fruit Vegetable Meat 下拉列表默认为 Any 我怎样才能将其更改为 Fruit 在 JqGrid 事件中load
  • Android Studio 空白活动

    我使用的是 Android Studio 2 1 没有 空白活动 选项 我见过有人问过这个问题 一般的建议是 自己做一个 问题是我对 Android 开发一无所知 所以我正在学习这个教程http developer android com
  • jQuery onclick 删除表格行

    如何点击删除表格行 这里有一个jsfiddle 我只想删除 del 链接嵌套的行 而不是脚本现在执行的最后一行 单击呼叫delTableRow 函数并且需要更改该函数以删除嵌套的 del 链接行
  • jqGrid 多选上的 PrettyCheckable

    我有一个jqGrid带有我用 CSS 自定义的多选复选框的表格和漂亮可检查 要自定义我设置的表格的所有复选框 prettyCheckable 如下 jQuery document ready function input type chec