我有一个3个jquery选项卡,它们使用不同的数据加载相同的jqgrid结构。 我在jqgrid中有一个过滤器工具栏。这些字段中的几个是日期字段,因此我有一个日期选择器供用户选择过滤日期。
日期选择器在第一个选项卡的网格中正常工作,但在其他选项卡中断开。搜索字段中未填充所选日期。
这是标签和网格的外观:
在Pending选项卡中,datepicker工作正常。但是在“已批准”和“附加步骤”选项卡中中断。
我注意到jqgrid分配给日期搜索字段的id对于所有三个选项卡中的网格都是相同的。是否有可能当我点击第二个标签和网格时,由于第一个标签的网格在DOM中,这会破坏日期选择器?有什么想法吗?
更新
{ name: 'vpReportDate', index: 'vpReportDate',datefmt:"m/d/Y", sorttype:"date", width: 65, searchoptions:{dataInit:showDatePicker}, sortable:true },
答案 0 :(得分:1)
我还使用jQGrid和jQuery UI选项卡,我已经学会了每个网格(因为它可以同时在DOM中)都需要不同的列名/索引。
您可以通过执行以下操作更改搜索字段的ID
:
$("#tabs-tabID #gs_vpReportDate").attr("id", "#gs_vpReportDate_2");
将#tabs-tabID
更改为您的jQuery UI标签的ID。
但是,这会破坏搜索功能,因为您正在更改jQGrid的默认设置。
这里的真正问题不是datepicker的ID,但是每个网格上的所有搜索字段的ID都是相同的(因为colModel中的名称/索引在每个标签中都是相同的)。
虽然您可能不喜欢听到这一点,但最安全的做法是为每个网格更改每个列的名称/索引。由于这些网格将同时驻留在DOM中,因此您无法在colModel中重复名称/索引,或者这样的情况将继续困扰您。
我会做什么(并且已经在我自己的工作中完成)只是在每个列的名称的前面添加一些内容 - 而不仅仅是日期列你的colModel
。像这样:
待定网格:
name: 'pending_vpReportDate', index: 'vpReportDate'
批准网格:
name: 'approved_vpReportDate', index: 'vpReportDate'
其他步骤网格:
name: 'additional_vpReportDate', index: 'vpReportDate'