JQgrid-escape';:';在搜索选项中(值部分)

JQgrid-escape';:';在搜索选项中(值部分),jqgrid,Jqgrid,这里解释了如何设置过滤器的值。我有两个要求。 1.默认值必须为空。我希望,如果未设置defaultValue,则筛选器为空,但在我的情况下不会出现这种情况。 2.如何在我的值中转义“:”。字符“:”和“;”用于分隔索引和值。但是,在我的值字符串中,它包含一个“:”(例如:searchoptions:{value:'1:'Level:1'},其中Level:1是我的第一个值)。如何逃避:在价值部分。我试过\、/等等 谢谢 编辑:如果没有其他方法,第1项可以解决。我可以在所有值中设置一个附加项,并使

这里解释了如何设置过滤器的值。我有两个要求。
1.默认值必须为空。我希望,如果未设置defaultValue,则筛选器为空,但在我的情况下不会出现这种情况。
2.如何在我的值中转义“:”。字符“:”和“;”用于分隔索引和值。但是,在我的值字符串中,它包含一个“:”(例如:searchoptions:{value:'1:'Level:1'},其中Level:1是我的第一个值)。如何逃避:在价值部分。我试过\、/等等

谢谢


编辑:如果没有其他方法,第1项可以解决。我可以在所有值中设置一个附加项,并使用默认值。

您是对的,如果您将其定义为字符串,则似乎不可能使用任何转义字符将“:”放在
搜索选项的
内:

searchoptions:{value:"1:'Level: 1'"}
还有另一种设置
searchoptions
-对象形式的
值的形式,也在下面介绍。例如,您可以使用以下语法

searchoptions:{value:{'1:': 'Level: 1;', ':2:;': 'Level: 2;'}}

它使用显示的文本“级别:1;”和“级别:2;”以及相应的值“1:”和“:2:;”定义选择。它可以工作。

我也有同样的问题,唯一的选择是使用searchoptions对象。 但是,我必须以编程方式构建列表,因此无法使用定义对象

因此,我决定使用构建列表作为JSON字符串,然后解析它,如下所示:

搜索选项:{
值:$.parseJSON(“{”+searchSelectFormat.join(“,”+“}”),
sopt:['eq']

}
我只想问你我的答案是否解决了你的问题?尽管我从未测试过上述解决方案,因为我已经采取了另一种方法,我可能会将其视为回答了我的问题。。感谢您的帮助和time.FWIW,jqGrid官方博客声明它现在有了一个解决方案,只考虑第一个“:”作为key:value选项的分隔符(在分隔选项的“;”之间包含的所有文本中。这意味着现在字符串中可以有任意数量的冒号,并且只有第一个冒号将作为分隔符。更多信息请参见此处。此外,尽管使用对象而不是字符串是有效的,但它的缺点是会丢失列表的原始顺序(它总是根据索引排序)@DiegoDD:答案是6年前的。
搜索选项
现在支持两个属性:
分隔符
,默认值为
:“
分隔符
,默认值为
。如果知道值可以包含
,则可以使用可选符号指定
分隔符
,该符号不在主值内。@Oleg:我也遇到了同样的问题。我的对象将如下所示
{“1200”:“10:00-12:00”,“900”:“07:00-09:00”}
。如果我在下拉列表中包含
:all
选项,它不会出现在第一个选项中。
{“:“all”,“1200:“10:00-12:00”,“900:“07:00-09:00”}
。我需要所有的
选项都放在第一位。你能帮我吗?@Ranjith:我建议你使用字符串作为
搜索选项
值。如果
可以在文本或值中,你可以使用
分隔符和
分隔符
属性。另外
noFilterText
首选用于指定
:“All”
条目,因为该值将仅在筛选工具栏中使用,而不会在搜索对话框中使用。例如,
searchoptions:{noFilterText:“All”,分隔符:“@”,值:1200@10:00-12:00;900@07:00-09:00“}