【问题标题】:infragistics webdatagrid get selected cell from keydown event in client sideinfragistics webdatagrid 从客户端的 keydown 事件中获取选定的单元格
【发布时间】:2016-09-07 13:33:00
【问题描述】:

我已经在 c# 中构建了一个基础设施 webdatagrid:

        var columnOne = new BoundDataField();
        columnOne.DataFieldName = "ColumnOne";
        columnOne.Key = "columnOne";
        columnOne.Header.Text = "columnOne";

        var columnTwo = new BoundDataField();
        columnTwo.DataFieldName = "ColumnTwo";
        columnTwo.Key = "columnTwo";
        columnTwo.Header.Text = "columnTwo";

        WebDataGridObject.DataKeyFields = "ColumnOne";
        WebDataGridObject.Columns.Add(columnOne);
        WebDataGridObject.Columns.Add(columnTwo);

当在第一列的单元格中输入内容时,我想从 javascript 更新第二列的单元格。

例如,我的用户开始在第 3 行和第 1 列的单元格中输入一个值,第 2 行和第 2 行的单元格必须自动更新为常量值,例如“更新”。

为此,我有点挣扎,我从我的 c# 中附加了很多客户端事件,我认为有用的是 keydown:

WebDataGridObject.ClientEvents.MouseDown = "WebDataGridView_MouseDown";
WebDataGridObject.ClientEvents.KeyDown = "WebDataGridView_KeyDown";
WebDataGridObject.Behaviors.EditingCore.Behaviors.CellEditing.CellEditingClientEvents.EnteredEditMode = "enteredEditMode";
WebDataGridObject.Behaviors.EditingCore.Behaviors.CellEditing.CellEditingClientEvents.ExitedEditMode = "exitedEditMode";

我想要我的 js keydown 事件处理程序,获取当前编辑的单元格的列键,如果它等于“columnOne”,则更新同一行和第二列的单元格的值。这是我的 js:

function WebDataGridView_KeyDown(webDataGrid, evntArgs) {


}

function WebDataGridView_MouseDown(webDataGrid, evntArgs) {
// this is where I am trying to get the column key of the currently edited cell
    webDataGrid.get_behaviors().get_selection().get_selectedRowsResolved()    [0].get_cell(3).get_text()
 }

var gridRef;
var cellRef;

function enteredEditMode(grid, args) {
    gridRef = grid;
    cellRef = args.getCell();
    if (cellRef._column._key === "headerName") {
        alert('toto');
    }
} 

function exitedEditMode(grid, args) {
    gridRef = null;
    cellRef = null;
}

【问题讨论】:

    标签: javascript c# webdatagrid


    【解决方案1】:

    要获取列键,你应该试试这个:

        webDataGrid.get_behaviors().get_selection().get_selectedRowsResolved()[0].get_cell(3).get_column().get_key();
    

    或者这个:

       webDataGrid.get_behaviors().get_selection().get_selectedRowsResolved()[0].get_cell(3).get_column()._dataFieldName
    

    【讨论】:

      【解决方案2】:

      为了获得将要进入编辑模式的单元格的列键,建议使用eventArgs 参数。

      您将在下面找到可以访问此信息的两个客户端事件(列键)

      function WebDataGrid1_CellEditing_EnteringEditMode(sender, eventArgs)
      {
          // Get the key of the currently edited cell
          var columnKey = eventArgs.getCell().get_column().get_key();
      }
      
      function ClientEvents_MouseDown(sender, eventArgs) {
          // Get the key of the currently edited cell
          var columnKey = eventArgs.get_item().get_column().get_key();
      }
      

      如您所见,区别在于 eventArgs

      中的 getCellgetItem 方法

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-07
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多