2

我目前正在使用 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 创建一个隐藏列,将它们推送到 UI,但当从 Infragistics 访问该行时,所有隐藏数据都被丢弃(空 GUID 最终出现在 JSON 中)。

我已经尝试通过 Infragistics 隐藏这些列,也可以通过 jquery 简单地隐藏它们,但是 Infragistics 访问数据的方式似乎丢弃了任何设置 display:none 的内容。

有没有办法在不显示它们的情况下引用键?我已经在网格中使用了 comboFor 编辑器,但是当网格从更改中更新时,仍然无法不公开 valuekey。

4

2 回答 2

3

几周前在基础设施论坛上讨论了这个话题(对不起,我找不到它的链接)。

问题是隐藏列未包含在为网格的 CRUD 操作创建的事务中,因此在对事务进行反序列化后,这些隐藏列在服务器上的值为 NULL。请注意,这是行添加/更新的问题 - 在单元格编辑模式下不会发生。

开发团队已经准备了一个修复程序,该修复程序将与即将发布的 Service Relase 一起提供。

希望这可以帮助你。

于 2012-10-23T23:59:44.137 回答
1

有时对 IG 感到非常沮丧。但是,您有几个选择。如果您只关心您可以看到的列...即,您隐藏了一些列但您不需要访问它们,那么您可以在editRowEndoreditRowEnding事件触发时访问 ui 对象。否则,您需要使用底层dataSourcedataView. 这是它的外观,包括网格:

 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
        }
    },
于 2013-07-24T17:09:06.660 回答