在jqgrid高级搜索中动态填充下拉选项的最佳方法是什么?
1)第一种方式:使用“searchoptions”的“dataUrl”选项
缺点:当用户添加新条件并选择属性时,dataUrl已发布到服务器,当用户再次添加相同条件时,dataUrl再次发布到服务器,并且两次。很奇怪。
优点:之前用户选择的值已存在且未清除。
2)第二种方式:使用“searchoptions”的“dataInit”选项
缺点:添加新条件时,之前选择的用户值已被清除(无法接受,因为它不是用户友好的,请参阅网址:the selected value was cleared in dropdown after add new criteria in jqgrid advanced searching)
优点:当页面刷新时,数据已加载到页面中,仅一次。
3)第三种方式,使用“searchoptions”的“值”选项
但它不是动态的,只是在页面中进行了硬编码。
任何人都可以分享有关这些问题的最佳做法。感谢。
答案 0 :(得分:0)
我从第二个选项开始。我想你以错误的方式使用dataInit
。 dataInit
初始化控件的目标,例如将<select>
转换为select2或在文本输入元素上设置jQuery UI自动完成或jQuery UI Datepicker。应该不用值填充控件。在调用dataInit
之前已经创建并填充了选择控件。
如果使用第一个选项,可以设置HTTP缓存标头以防止向dataUrl
发出多个请求。
关于最后一个选项:例如,可以在searchoptions.value
内设置beforeProcessing
动态。请参阅the answer,this one和this one。