gpt4 book ai didi

jquery - jQgrid tableToGrid() 忽略选项中的 colModel 和 ColNames

转载 作者:行者123 更新时间:2023-12-01 06:02:22 44 4
gpt4 key购买 nike

当涉及到 tableToGrid() 函数时,我正在浏览 jqGrid 4.3.1 的文档和源代码,我发现 ColModel ColNames 在包含在 options 对象中时会被忽略,因为它们是根据 HTML 表格布局构造的。

我的问题是有没有办法强制 tableToGrid() 接受这两个数组 (ColModel,ColNames) 而不是从 HTML 表中构造它们,特别是如果表的列是预先知道的。

当我浏览代码时,我在TableToGrid的代码中找到了这部分

function tableToGrid(selector, options) {
...
...
// Build up the columnModel and the data
var colModel = [];
var colNames = [];
jQuery('th', jQuery(this)).each(function() {
if (colModel.length === 0 && selectable) {
colModel.push({
name: '__selection__',
index: '__selection__',
width: 0,
hidden: true
});
colNames.push('__selection__');
} else {
colModel.push({
name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
width: jQuery(this).width() || 150
});
colNames.push(jQuery(this).html());
}
});

但是,我的黑客会考虑这些更改

    function tableToGrid(selector, options) {
...
...
// Build up the columnModel and the data
if(options.hasOwnProperty("colModel") && options.hasOwnProperty("colNames")) {
var colModel = options.colModel;
var colNames = options.colNames;
} else {
var colModel = [];
var colNames = [];
jQuery('th', jQuery(this)).each(function() {
if (colModel.length === 0 && selectable) {
colModel.push({
name: '__selection__',
index: '__selection__',
width: 0,
hidden: true
});
colNames.push('__selection__');
} else {
colModel.push({
name: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
index: jQuery(this).attr("id") || jQuery.trim(jQuery.jgrid.stripHtml(jQuery(this).html())).split(' ').join('_'),
width: jQuery(this).width() || 150
});
colNames.push(jQuery(this).html());
}
});
}

我只是想知道是否有一种更简单的方法(可能是我错过的一个选项)可以强制执行此类行为,而无需调整源代码。

我首先这样做的原因是对某些字段强制使用 datefmt 选项,因为它们被 jQgrid 忽略,从而导致搜索功能出现问题。如果 @Oleg 可以对此提供一些见解,我们将不胜感激。

干杯,N.

最佳答案

我认为你的主要问题是你根本使用了tableToGrid。我发现有关常见用法或架构的问题是技术问题。

如果您输入了数字、日期、货币等数据,您可能希望数据能够正确排序,例如通过 jqGrid。从 HTML 表中解析本地化数据并取消数据格式并不是最好的方法。如果您直接创建 jqGrid,您可以节省时间。您应该在 data 参数中提供输入数据。这样,数据就可以轻松、安全地读取、排序和分页。您可以轻松地包括工具栏过滤或高级搜索或其他一些过滤搜索。只有当您提供 jqGrid 纯数据时,一切才会顺利进行。

参见the answer了解更多信息。

关于jquery - jQgrid tableToGrid() 忽略选项中的 colModel 和 ColNames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018069/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com