easyui datagrid 编辑单元格后失去焦点结束编辑状态,怎么做啊?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了easyui datagrid 编辑单元格后失去焦点结束编辑状态,怎么做啊?相关的知识,希望对你有一定的参考价值。

参考技术A var tab = $('#tt').tabs('getTab',0); // 取得第一个tab
$('#tt').tabs('update',
tab: tab,
options:
title: 'New Title'

);
参考技术B 用acceptChange 方法

WPF DataGrid 全行编辑

【中文标题】WPF DataGrid 全行编辑【英文标题】:WPF DataGrid Full Row Editing 【发布时间】:2011-08-23 22:35:38 【问题描述】:

我有一个 WPF 数据网格,可以满足我的需求,但每行中有两个单元格可以编辑。是否可以在编辑行时将这两行都置于编辑模式,然后在行编辑结束/行失去焦点时触发更新?目前,在编辑每个单元格后,RowEditEnding 会触发,用户必须等待 UI 在提交后重绘。我使用的代码是:

 private bool isManualEditCommit;
 private void dg_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
        
            if(e.EditAction!= DataGridEditAction.Commit)
                return;
            var newProd = dgLists.SelectedItem as IProduct;
            if(newProd==null)
                return;
                    worker = new BackgroundWorker();
                    worker.DoWork += (s, dwe) =>
                    
            ... commit update
                    ;
                    worker.RunWorkerCompleted += (s, rwe) =>
                    
                        ... refresh grid
                    ;
                    worker.RunWorkerAsync();
        
    /// <summary>
    /// Commits edits when a cell edit ends.
    /// </summary>
    /// <param name="sender">The source of the event.</param>
    /// <param name="e">The <see cref="System.Windows.Controls.DataGridCellEditEndingEventArgs"/> instance containing the event data.</param>
    private void dg_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e) 
        if (e.EditAction == DataGridEditAction.Commit)
        
            if (!isManualEditCommit)
            
                isManualEditCommit = true;
                DataGrid grid = (DataGrid) sender;
                grid.CommitEdit(DataGridEditingUnit.Row, true);
                isManualEditCommit = false;
            
        

【问题讨论】:

【参考方案1】:

我退出使用 DataGrid 进行编辑。我使用 ListView 然后提供一个 GridView 作为 ListView.View。在 GridView 中,您可以使用 CellTemplates 创建 GridViewColumns。每个 GridView 行的最后一列是删除该行的按钮。我不支持浏览和编辑模式,只支持编辑模式。应用程序运行得更加流畅,我没有任何与使用 DataGrid 相关的头疼问题。

【讨论】:

【参考方案2】:

整行编辑是默认功能。每次单元格编辑都会触发更新的唯一原因是您已经实现了 dg_cellEditEnding 方法。

【讨论】:

但并非所有单元格都进入编辑模式。每个单元格在获得焦点时都会显示它的 CellEditingTemplate,但该行中的其余单元格都有其标准的、不可编辑的控件。

以上是关于easyui datagrid 编辑单元格后失去焦点结束编辑状态,怎么做啊?的主要内容,如果未能解决你的问题,请参考以下文章

easyui中datagrid合并单元格后,当开启其他列某一个单元格进入编辑状态时,合并行会出现错位,该怎么解决啊

easyui datagrid编辑单元格的时候失去焦点结束编辑代码怎么写

EasyUI——可编辑的DataGrid

WPF DataGrid 全行编辑

EasyUI DataGrid 编辑单元格

easyui datagrid 单元格关闭编辑框再开启编辑框就报错