2013-11-22 3 views
1

У меня есть 3 вкладки jquery, которые загружают одну и ту же структуру jqgrid с разными данными. У меня есть панель инструментов фильтра в jqgrid. Пара этих полей - это поля даты, поэтому у меня есть выбор для выбора даты для фильтрации.Можем ли мы манипулировать идентификатором, назначенным jqgrid?

Сборщик даты отлично работает в сетке на первой вкладке, но разбивается на другие вкладки. Выбранная дата не заполняется в поле поиска.

Это, как вкладки и сетки взгляд: enter image description here

Здесь на вкладке Pending, то DatePicker работает отлично. Но перерывы на вкладке «Утвержденные и дополнительные шаги».

Я заметил, что идентификатор, присвоенный jqgrid для поля поиска даты, одинаковый для сеток во всех трех вкладках. Возможно ли, что когда я нажимаю на вторую вкладку и сетку, так как сетка первой вкладки находится в DOM, это нарушает выбор даты? Есть идеи?

Update:

{ name: 'vpReportDate', index: 'vpReportDate',datefmt:"m/d/Y", sorttype:"date", width: 65, searchoptions:{dataInit:showDatePicker}, sortable:true }, 
+0

jqGrid фактически назначает идентификатор в поле Datepicker? Ничего себе, я бы ожидал, что он будет использовать класс – jammykam

+0

Имеет ли ваш столбец «VP Report» одинаковый индекс/имя (из colModel) во всех трех сетках? – FastTrack

+0

@FastTrack Да ..Я обновил вопрос с помощью соответствующего кода. – tarares

ответ

1

Я также использую jQGrid с помощью вкладок JQuery UI, и я узнал, трудный путь, что каждая решетка (так как все это может быть в DOM в то же время) потребуется другой столбец имена/индексы.

Вы можете изменить ID поля поиска, выполнив:

$("#tabs-tabID #gs_vpReportDate").attr("id", "#gs_vpReportDate_2"); 

Изменить #tabs-tabID для ID вашего JQuery UI вкладки.

Однако это нарушает функциональность поиска, так как вы меняете настройку jQGrid по умолчанию.

Настоящая проблема здесь не является идентификатором даты, но все идентификаторы поля поиска будут одинаковыми на каждой сетке (поскольку имена/индексы из colModel одинаковы на каждой вкладке).

Несмотря на то, что вам может не понравиться это слышать, самое безопасное действие, которое в будущем может спасти вас от головной боли, заключается в изменении имен/индексов каждого столбца для каждой сетки. Поскольку эти сетки будут одновременно находиться в DOM, вы не можете повторять имена/индексы в вашем colModel, или такие ситуации будут преследовать вас.

Что бы я сделал (и делал в своей работе) только предварять то перед каждым имени для каждого столбца - не просто дата столбцы в вашем colModel. Как так:

Pending Сетка:

name: 'pending_vpReportDate', index: 'vpReportDate' 

Утверждена Сетка:

name: 'approved_vpReportDate', index: 'vpReportDate' 

Дополнительные шаги сетки:

name: 'additional_vpReportDate', index: 'vpReportDate' 
+1

Я больше не могу согласиться с вами в отношении основной причины этой проблемы. Но тогда, когда вы предложили иметь разные имена для столбцов, добавив что-то в имена столбцов и индексов, как это будет работать при извлечении данных с сервера. Он ищет методы getter с именами кодов? – tarares

+0

@tarares Я полностью согласен! Итак, вот что вы делаете - просто измените 'name' NOT' index'. «Index» - это то, что передается на сервер - имя для ваших идентификаторов ввода и т. Д. Я просто обновил свой ответ. – FastTrack

+0

Это не сработало. Когда я изменил имя: «vpReportDate», чтобы назвать: pending_vpReportDate ', никакие данные не отображаются в столбце .. :(.. в то время как в теге ответа я могу видеть данные по этому столбцу .. выглядит так, как будто оно совпадает с именем. – tarares

Смежные вопросы