- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我所知,free-jqgrid使用 jlinq过滤和搜索数据。我正在制作自己的过滤器,它们使用众所周知的格式的网格 postData
:
{ "groupOp": "AND",
"groups" : [
{ "groupOp": "OR",
"rules": [
{ "field": "name", "op": "eq", "data": "England" },
{ "field": "id", "op": "le", "data": "5"}
]
}
],
"rules": [
{ "field": "name", "op": "eq", "data": "Romania" },
{ "field": "id", "op": "le", "data": "1"}
]
}
此数据在内部转换为 jlinq
查询。是否有任何公共(public)函数来获取当前对 grid
的查询?我还看到有一种私有(private)的可能性以类似 sql
的格式获取它。
我想尽可能多地使用默认的 jqGrid
功能,但没有找到任何东西。任何提示表示赞赏。
更新 2:
来了fiddle目前的实现。我需要采用它,所以那里有一些丑陋的部分,但你可以过滤值(value)观,以了解这个想法。首先,玩一下网格,因为代码很糟糕(这就是我想要更改它的原因,真的:))
所以,主要思想:
我们将过滤器值修改为众所周知的规则
和组
。
我们遍历所有列,删除该列名称的 rules
和 groups
并过滤数据。我的问题部分来了:我需要过滤数据,而不是网格,只需要一个数据来获得唯一值。现在,我从 postData
生成一个正则表达式,并通过纯 javascript
生成子集网格数据。您可以在 getDistinctColumnValues
中看到这一点,我想使用一些网格过滤的可能性 以使其工作方式与所有 opts
工作方式相同,当我们使用 postData
集进行过滤/搜索。
此外,我还看到一些内部函数可以将过滤器作为 sql
- 其中 - 这对于后端原型(prototype)设计也很好。
最佳答案
抱歉,我不确定您需要实现什么。你可以获得lastSelectedData
参数以根据当前过滤器获得过滤和排序数据的数组。完整数据可通过 lastSelectedData
获得范围。 filters
postData
的属性(property)参数为您提供当前过滤器。
您问“是否有任何公共(public)函数可以获取当前对网格的查询?”。您可以使用 getGridParam
获取当前查询的方法。我想,您想访问一些接近 jlinq 的内部结构,但它实际上没有任何实用值(value)。您可以通过 $.jgrid.from
访问类(class),但这并不是很有帮助。实用的只需要在postData.filters
中设置新的过滤器即可参数,设置search
参数 true
并调用.trigger("reloadGrid")
用新数据重新加载网格。
如果您需要自己过滤或排序一些数据,那么数组方法filter
和 sort
会更有效。如果以上信息不能帮助您解决问题,请在您的问题后附上附加信息,这些信息在示例中更详细地描述了问题并发表小评论。
已更新:我仍然不确定我是否完全理解您想要实现的内容。在我看来,如果您使用一些免费的 jqGrid 选项,您的 JSFiddle 演示的大部分功能都可以删除。
看https://jsfiddle.net/OlegKi/wqxyo579/25/ , 它使用了
colModel: [
{ name: 'name' },
{ name: 'surname' },
{ name: 'age' },
],
cmTemplate: {
width: 100,
autoResizable: true,
stype: 'select',
searchoptions: {
generateValue: true,
noFilterText: "(All)"
}
},
它在每一列上设置了一些默认属性。从 4.14.0 版开始,免费的 jqGrid 支持 generateValue: true
searchoptions
的属性(property)对于具有 stype: 'select'
的列(参见 here)。在内部,它的工作方式类似于 colModel
的另一个选项: createColumnIndex: true
, 它根据具有 createColumnIndex: true
的所有列中的唯一值生成映射.可以使用 getUniqueValueFromColumnIndex
方法来获取任何列的索引(如 var indexName = $("#list").jqGrid("getUniqueValueFromColumnIndex", "name");
)。如果使用 stype: 'select', searchoptions: { generateValue: true }
, 然后 filterToolbar
自动构建 <select>
使用索引的元素。 jqGrid 内部使用 oSv = $("#list")[0].generateValueFromColumnIndex(cmName, sep, delim);
(参见 here)。因此,使用该功能可以节省大量自定义设置。
唯一的一点,在使用 createColumnIndex: true
时不要忘记这一点。或 generateValue: true
: 索引将在加载或重新加载数据后构建。所以应该调用filterToolbar
之后 填充数据。如果您从服务器加载关于 loadonce: true
的数据选项,那么你应该调用filterToolbar
更好的内部 loadCompleted
回调(就像在演示中一样)。如果直接加载本地数据,则不需要。只需调用 filterToolbar
在填充数据之后。
另一种选择是使用 <datalist>
而不是 <select>
.它允许使用 <input>
在过滤器工具栏中,但具有接近选择或选择 2 的功能。参见 https://jsfiddle.net/OlegKi/wqxyo579/24/ ,我在哪里使用 createColumnIndex: true, searchoptions: { sopt: [ "cn", "eq", "bw", "ew", "bn", "nc", "en" ], clearSearch: true, generateDatalist: true }
.数据列表在不同的网络浏览器中以略有不同的方式实现,它们有一些缺点,但它是 native 实现的功能,因此运行速度非常快。可以将它用于例如网格中的 1000 个唯一值和 10000 行(我强烈建议在这种情况下使用本地数据分页并使用页面大小 10-25)。具有 1000 个元素的数据列表仍然具有良好的性能,例如 select2 更好。
最后的评论。我看到你 build 了colModelIndexesByNames
按名称查找列。内置参数iColByName
已经存在于免费的 jqGrid 中并在内部使用。如果p
是对 jqGrid ( var p = $("#list").jqGrid("getGridParam")
) 参数的引用,然后是 p.iColByName
是 map ,它通过列名和 p.colModel[p.iColByName.name]
获取列索引将代表 colModel
中的项目, 对应 "name"
专栏。
关于javascript - 如何过滤 jqGrid 数据而不是网格本身,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57757202/
初学者 android 问题。好的,我已经成功写入文件。例如。 //获取文件名 String filename = getResources().getString(R.string.filename
我已经将相同的图像保存到/data/data/mypackage/img/中,现在我想显示这个全屏,我曾尝试使用 ACTION_VIEW 来显示 android 标准程序,但它不是从/data/dat
我正在使用Xcode 9,Swift 4。 我正在尝试使用以下代码从URL在ImageView中显示图像: func getImageFromUrl(sourceUrl: String) -> UII
我的 Ubuntu 安装 genymotion 有问题。主要是我无法调试我的数据库,因为通过 eclipse 中的 DBMS 和 shell 中的 adb 我无法查看/data/文件夹的内容。没有显示
我正在尝试用 PHP 发布一些 JSON 数据。但是出了点问题。 这是我的 html -- {% for x in sets %}
我观察到两种方法的结果不同。为什么是这样?我知道 lm 上发生了什么,但无法弄清楚 tslm 上发生了什么。 > library(forecast) > set.seed(2) > tts lm(t
我不确定为什么会这样!我有一个由 spring data elasticsearch 和 spring data jpa 使用的类,但是当我尝试运行我的应用程序时出现错误。 Error creatin
在 this vega 图表,如果我下载并转换 flare-dependencies.json使用以下 jq 到 csv命令, jq -r '(map(keys) | add | unique) as
我正在提交一个项目,我必须在其中创建一个带有表的 mysql 数据库。一切都在我这边进行,所以我只想检查如何将我所有的压缩文件发送给使用不同计算机的人。基本上,我如何为另一台计算机创建我的数据库文件,
我有一个应用程序可以将文本文件写入内部存储。我想仔细看看我的电脑。 我运行了 Toast.makeText 来显示路径,它说:/数据/数据/我的包 但是当我转到 Android Studio 的 An
我喜欢使用 Genymotion 模拟器以如此出色的速度加载 Android。它有非常好的速度,但仍然有一些不稳定的性能。 如何从 Eclipse 中的文件资源管理器访问 Genymotion 模拟器
我需要更改 Silverlight 中文本框的格式。数据通过 MVVM 绑定(bind)。 例如,有一个 int 属性,我将 1 添加到 setter 中的值并调用 OnPropertyChanged
我想向 Youtube Data API 提出请求,但我不需要访问任何用户信息。我只想浏览公共(public)视频并根据搜索词显示视频。 我可以在未经授权的情况下这样做吗? 最佳答案 YouTube
我已经设置了一个 Twilio 应用程序,我想向人们发送更新,但我不想回复单个文本。我只是想让他们在有问题时打电话。我一切正常,但我想在发送文本时显示传入文本,以确保我不会错过任何问题。我正在使用 p
我有一个带有表单的网站(目前它是纯 HTML,但我们正在切换到 JQuery)。流程是这样的: 接受用户的输入 --- 5 个整数 通过 REST 调用网络服务 在服务器端运行一些计算...并生成一个
假设我们有一个名为 configuration.js 的文件,当我们查看内部时,我们会看到: 'use strict'; var profile = { "project": "%Projec
这部分是对 Previous Question 的扩展我的: 我现在可以从我的 CI Controller 成功返回 JSON 数据,它返回: {"results":[{"id":"1","Sourc
有什么有效的方法可以删除 ios 中 CBL 的所有文档存储?我对此有疑问,或者,如果有人知道如何从本质上使该应用程序像刚刚安装一样,那也会非常有帮助。我们正在努力确保我们的注销实际上将应用程序设置为
我有一个 Rails 应用程序,它与其他 Rails 应用程序通信以进行数据插入。我使用 jQuery $.post 方法进行数据插入。对于插入,我的其他 Rails 应用程序显示 200 OK。但在
我正在为服务于发布请求的 API 调用运行单元测试。我正在传递请求正文,并且必须将响应作为帐户数据返回。但我只收到断言错误 注意:数据是从 Azure 中获取的 spec.js const accou
我是一名优秀的程序员,十分优秀!