Доступ к скрытым 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
}
},