(仅供参考,我使用jqGrid 5。)
我的问题是关于jqGrid中的列过滤器。我有一个字段从服务器返回作为布尔值," true"或"假"。我可能有把它改成0/1的奢侈品,但我真的不想,如果我可以避免它。所以,它看起来像这样:
{"rows":[{"rowID":47568,"field1":"some text here","isOpen":true} ...]}
在我的jqGrid中,我正在使用" beforeProcessing"函数显示布尔值除了" true"或" false":
beforeProcessing: function(data) {
for(var i=0, len=data.rows.length; i< len; i++) {
data.rows[i].isOpenModified = openFormatter(data.rows[i].isOpen);
}
...
function openFormatter(isOpen) {
return isOpen ? '' : 'CLOSED';
}
如果isOpen为true,则会产生将单元格留空的效果,并显示“已关闭”#39;如果它是假的。到目前为止一切都很好。
我遇到的问题是工具栏过滤器字段的选择字段。这是jqGrid列模型:
colModel: [
{ name: 'field1', label: 'Stuff', width: 100},
{ name: 'isOpenModified', index:'isOpen', label: 'CLOSED',
searchoptions: { sopt:['eq'], value: ':All;" ":Open;"CLOSED":CLOSED'}, stype: 'select'},
],
这正确显示&#34; CLOSED&#34;的选择框。字段,但选择除&#34; All&#34;之外的任何内容。没有任何表现。
我确实尝试将isOpenModified更改为0和1,然后筛选器选择框工作,但当然我无法提供。我的要求是显示空(isOpen == true)或&#34; CLOSED&#34; (ISOPEN == FALSE)。
我觉得解决方案可能涉及列模型的名称和索引字段,但我无法确定我做错了什么。我很感激你的时间....
答案 0 :(得分:0)
我发现了原始问题的解决方案,但它提出了另一个问题。
需要修改搜索选项以使其正常工作:
{ name: 'isOpenModified', label: 'CLOSED',
searchoptions: { sopt:['eq'], value: ':All; :Open;CLOSED:CLOSED'}, stype: 'select'}
请注意,引号将从空格周围和CLOSED附近删除。
我还更改了format方法以返回空格而不是空字符串:
return isOpen ? ' ' : 'CLOSED';
这导致另一个问题:现在&#34;打开&#34;默认情况下选择选项(但它未被未清项目过滤)。我试图通过颠倒顺序来解决这个问题:
{ name: 'isOpenModified', label: 'CLOSED',
searchoptions: { sopt:['eq'], value: ' :Open;:All;CLOSED:CLOSED'}, stype: 'select'}
这就像#34; All&#34;默认情况下已选中,但在列表中排名第二。我正在等待'#34; style&#34;伙计们要合适。有什么建议吗?