簡體   English   中英

infragistics webdatagrid從客戶端的keydown事件中獲取所選單元格

[英]infragistics webdatagrid get selected cell from keydown event in client side

我在c#中構建了一個infragistics 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列的單元格必須使用常量值自動更新,例如“updated”。

要做到這一點,我有點掙扎,我從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;
}

要獲取列鍵,您應該嘗試這樣做:

    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

為了獲取將要進入編輯模式的單元格的列鍵 ,建議使用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方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM