Доступ к скрытым GUID Инфраструктура igGrid

В настоящее время я использую Infragistics Grid со встроенным редактированием, похожим на этот пример: http://www.infragistics.com/community/blogs/mihail_mateev/archive/2011/09/25/using-crud-operations-with-jquery-iggrid-entity-framework-and-and-asp-net-mvc3.aspx.

Я столкнулся с проблемой, заключающейся в том, что большая часть данных в сетке сохраняется с помощью ключа GUID, так как ссылаются на несколько существующих баз данных. Проблема заключается в том, что, хотя я могу создать скрытый столбец для этих идентификаторов GUID, который будет перенаправлять их в пользовательский интерфейс, при доступе к строке из Infragistics все скрытые данные отбрасываются (пустые идентификаторы GUID заканчиваются в JSON).

Я пытался скрыть столбцы как с помощью Infragistics, так и просто скрывая их с помощью jquery, но способ, которым Infragistics обращается к данным, похоже, ничего не отображает при отображении: ни один не установлен.

Есть ли способ ссылаться на клавиши, не отображая их? Я использовал редактор comboFor в сетке, но все равно в конечном итоге нет способа не показывать ключ значения, когда сетка обновляется после изменения.

2 ответа

Решение

Эта тема обсуждалась на форумах по инфраструктуре пару недель назад (извините, я не могу найти ссылку на нее).

Проблема заключалась в том, что скрытые столбцы не были включены в транзакции, созданные для CRUD-операций сетки, и, таким образом, такие скрытые столбцы имели значение NULL на сервере после десериализации транзакций. Обратите внимание, что это проблема добавления / обновления строки - это не происходит в режиме редактирования ячейки.

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

Надеюсь, что это помогает вам.

Иногда очень расстраивает ИГ. Но у вас есть несколько вариантов. Если вы заботитесь только о столбцах, вы можете ВИДЕТЬ... т.е. вы скрыли некоторые столбцы, но вам не нужен доступ к ним, тогда вы можете просто получить доступ к объекту пользовательского интерфейса, когда editRowEnd или же editRowEnding события пожара. В противном случае вам нужно использовать dataSource"s dataView, Вот как все это должно выглядеть, включая сетку:

 grid = $("#grid").igGrid({
   height: 400,
   width: null,     //if null, the grid should stretch to fit
   virtualization: false,
   autoGenerateColumns: false,
   columns: [
     ......
   ],
   autoupdate: false,
   features: [
    { name: "Updating",
        enableAddRow: true,
        enableDeleteRow: true,
        editMode: 'row',
        editMode: 'cell',
        enableDataDirtyException: false,
        rowAdded: function(evt, ui) {
          alert("this is a visible column (title): " + ui.values.title);
        },
        editRowEnded: function(evt, ui) {
          var row = ui.owner.grid.dataSource.dataView()[ui.owner._rowIndex];
          alert("this is my id column, which is hidden: " + row.id);                  
        },
        rowDeleted: function(e, ui) {
          ... do something
        }
    },
Другие вопросы по тегам