Несколько JqGrids на одном и том же представлении/странице в ASP.net MVC

Это НЕ вопрос типа Master/Detail.

Я использую ASP.Net MVC и пытаюсь отобразить несколько jqGrids на одной странице из разных источников данных в интерфейсе с вкладками.

Однако, когда страница загружается, каждый jqGrid имеет макет и данные для последнего jqGrid, определенного на странице. Возможно ли иметь два несвязанных jqGrids на одном и том же представлении/странице?

Когда я загружаю каждый jqGrid отдельно, данные отображаются в каждом, как и должно быть. Однако при загрузке всего сразу происходит то, что я сказал ранее.


person L A Johnson    schedule 11.01.2010    source источник
comment
Покажите, как вы настроили сетки (ваш файл JS) и действия, которые предоставляют данные для сетки. Нам нужно увидеть их, чтобы отладить их.   -  person Craig Stuntz    schedule 11.01.2010
comment
Спасибо Крейг за ответ. Как FYI, ваш учебник помог мне начать. В файле настроек по умолчанию для сетки (Site.Master.js) вы определяете переменную для сетки (например, GridDemo.Home.GridDemo). Файл настроек по умолчанию отлично работает, если в представлении или на странице есть только одна сетка. Тем не менее, это был GOTCHA для меня. Я использую интерфейс с вкладками (интерфейс панели инструментов), поэтому все мои сетки находятся на одной странице. Следовательно, каждый раз, когда я создавал сетку на странице. На мой взгляд, это перезаписывало другие сетки. Мне пришлось удалить ссылку на файл Site.Master.js и определить переменные локально.   -  person L A Johnson    schedule 11.01.2010
comment
L A, вы можете переопределить значения по умолчанию при вызове $.jqGrid (например, указав другую опцию url). Значения по умолчанию не предотвращают использование нескольких сеток; вы просто не можете полагаться только на них.   -  person Craig Stuntz    schedule 12.01.2010
comment
Я без проблем изменил значения по умолчанию, Крейг. Проблема заключалась в том, что GridDemo.Home.GridDemo упоминался в каждом созданном мной файле *grid.js. Что происходит, так это то, что эта переменная содержит ссылку на каждую сетку, которую я указал в этом ОДНОМ представлении. Если в представлении есть только одна GRID, проблем нет. Однако, если в одном и том же представлении имеется несколько сеток, используются настройки для последней вызванной сетки на странице, включая данные и столбцы. Ваш код был правильным. Это было более или менее так, как я использую его с несколькими сетками в представлении и делюсь этой переменной.   -  person L A Johnson    schedule 12.01.2010


Ответы (1)


Это должно быть возможно. Что вы подразумеваете под "загружать отдельно" - как вы загружаете "не отдельно"? Можете ли вы показать немного кода? Используете ли вы разные идентификаторы для соответствующих HTML-элементов сетки?

person queen3    schedule 11.01.2010
comment
Спасибо за ответ. Ваш вопрос: используете ли вы разные идентификаторы для соответствующих HTML-элементов сетки? заставил меня копнуть глубже, и я понял проблему. Все элементы HTML имели уникальные идентификаторы. Однако я использовал демо Craig Stuntz и не понял, что он объявлял переменную в файле настроек по умолчанию для сетки. (Site.Master.js), поэтому в каждом частичном представлении использовалась одна и та же переменная. Следовательно, причина в том, что каждая сетка выглядела одинаково. Я удалил ссылку на файл по умолчанию и создал каждую сетку независимо, без использования этого файла, и теперь это работает. - person L A Johnson; 11.01.2010
comment
Рад, что помог. Не знаю, какие значения по умолчанию вы используете; Я лично использую простую вспомогательную функцию JS, поэтому я вызываю createJqGrid(model, url) и все значения по умолчанию присутствуют с возможностью переопределения (исходный код доступен по адресу sprokhorenko.blogspot.com/2009/12/dedicated-to-my-wife.html). - person queen3; 11.01.2010