2013-03-05 62 views
2

我需要从单元格表中获取值。如果你知道如何去做,我会非常感激。如何从infragistic表中获取值

尝试了几天,但我不知道怎么去ColumnID的和ROWID

我发现了这一点,但它不工作

.igGrid("getCellValue", rowId:object, colKey:string); 

这里是代码(我怎么能得到价值一张桌子)?

$.ig.loader(function() { 
$("#grid2").igGrid({ 

autoGenerateColumns: false, 
renderCheckboxes: true, 

columns:[     
      { headerText: "X", key: "x", dataType: "number", width: "40%"}, 
      { headerText: "Y", key: "y", dataType: "number", width: "40%"}, 
      { headerText: "Z", key: "z", dataType: "number", width: "40%"}, 

     ], 

//dataSource: data, 

height: "400px", 
width: "100%", 
features:[ 
      { 
       name: "Filtering", 
       allowFiltering: true, 
       type: "local" 
      }, 
      { 
       name: "Selection", 
       mode: "row" 
      }, 
      { 
       name: "Updating", 
       enableAddRow: false, 
       editMode: "row", 
       // event raised after end row editing but before dataSource was updated 
       editCellEnding: function (evt, ui) { 
        // get cell’s checkbox value when it is changed 
        if (ui.update) { 
         if (ui.columnKey === "nid") { 
          logEvent("editCellEnded event fired. Column Key = " + 
         ui.columnKey + "; Row Index = " + 
         ui.rowID + "; Cell Value = " + 
         ui.value + "; Update = " + 
         ui.update); 
         } 
        } 
       }, 
       enableDeleteRow: false, 
       columnSettings: [ 
       { 
        columnKey: "x", 

       }, 
       { 
        columnKey: "y" 
       }, 
       { 
        columnKey: "z" 
       }] 
      } 

     ] 
}); 

$.ajax({ 
    type: "POST", 
    url: "http://cmsdemo.trueoffice.com/feature-json", 
    data: "{}", 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(data){ 
     $("#grid2").igGrid({ 
     dataSource: data 
    }); 
    } 
}); 
    $("#grid2").live("iggridupdatingdatadirty", function (event, ui) { 
      $("#grid2").igGrid("commit"); 
      return false; 
     }); 
    // show the raised event 
     function logEvent(message) { 
      var evntWrap = $("#eventList"); 
      $(evntWrap).append("<div>" + message + "<div>"); 
      $(evntWrap).prop("scrollTop", $(evntWrap).prop("scrollHeight")); 
     } 
}); 

//Functions   
function Filter() { 
     var columnSettings = $("#grid1").igGridFiltering("option", "columnSettings"); 

     var expr = $("#filterExpr").val(), 
      condition = $("#cond_list").val(), 
      filterColumn = $("#filterColumn").val(); 
     $("#grid1").igGridFiltering("filter", ([{fieldName: filterColumn, expr: expr, cond: condition}])); 
    } 

    function SetConditions() { 
     var filterColumn = $("#filterColumn").val(); 
     $("#cond_list option:selected").removeAttr("selected"); 
     if (filterColumn === "title" || filterColumn === "nid") { 
     $("#cond_list .stringCondition").attr("disabled", "disabled"); 
     $("#cond_list .numberCondition").removeAttr("disabled").eq(0).attr("selected", "selected"); 
     } 
     else { 
      $("#cond_list .stringCondition").removeAttr("disabled").eq(0).attr("selected", "selected"); 
      $("#cond_list .numberCondition").attr("disabled", "disabled"); 
     } 
    } 
    function buttonClickHandler(buttonId) { 
    alert("Button with id " + buttonId + " was clicked"); 
} 

+1

究竟是什么不起作用?你能显示预期的输出和实际输出吗?你还可以在检索值的地方发布代码吗? – 2013-03-05 15:09:46

+1

@Harko请参阅下面的答案...我的示例/更改将适用于您的代码 – 2014-04-09 20:42:35

回答

2

这是非常令人沮丧与IG有时。但是,你有几个选择。如果您只关心可以查看的列,即,您已经隐藏了一些列,但不需要访问它们,那么当editRowEndeditRowEnding事件触发时,您可以访问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 
     } 
    },