zoukankan      html  css  js  c++  java
  • XAF 如何实现批量更改多列多行单元格的值

    1.功能:可以实现批量更改多列多行多单元格的值

    2.选择方式:多列选择和多单元格选择,可以任选其中一个选择方式或两个方式同时用。

    实现代码

    代码
    using System;
    using DevExpress.ExpressApp;
    using DevExpress.ExpressApp.Actions;
    using DevExpress.ExpressApp.Win.Editors;
    using DevExpress.XtraGrid.Views.Grid;
    using System.Drawing;
    using System.Collections;

    namespace MemberLevelSecurityDemo.Module
    {
        
    public partial class ViewController1 : ViewController
        {
            
    public ViewController1()
            {
                InitializeComponent();
                RegisterActions(components);

            }
            
    private ArrayList selectedColumns;
            
    private GridView gv = null;
            
    private void SetCurrentColumnValue_Execute(object sender, ParametrizedActionExecuteEventArgs e)
            {
                
    if (e.ParameterCurrentValue == nullreturn;
                gv.ClearSorting();
                
    foreach (var col in selectedColumns)
                {
                    
    for (int i = 0; i < gv.RowCount; i++)
                    {
                        gv.SetRowCellValue(i, col.ToString(), e.ParameterCurrentValue);
                    }
                }

                DevExpress.XtraGrid.Views.Base.GridCell[] selectedCells 
    = gv.GetSelectedCells();
                
    foreach (var item in selectedCells)
                {
                    gv.SetRowCellValue(item.RowHandle, item.Column, e.ParameterCurrentValue);
                }
                
    // Save Changed
                View.ObjectSpace.CommitChanges();
                View.ObjectSpace.Refresh();
            }

            
    private void ViewController1_ViewControlsCreated(object sender, EventArgs e)
            {
                gv 
    = ((View as ListView).Editor as GridListEditor).GridView;
                gv.OptionsSelection.MultiSelect 
    = true;
                gv.OptionsSelection.MultiSelectMode 
    = GridMultiSelectMode.CellSelect;
                selectedColumns 
    = new ArrayList();
                gv.MouseDown 
    += gv_MouseDown;
            }

            
    void gv_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
            {
                var view 
    = sender as GridView;
                var info 
    = view.CalcHitInfo(new Point(e.X, e.Y));
                
    if (info.InColumn)
                {
                    
    if (selectedColumns.IndexOf(info.Column.FieldName, 0, selectedColumns.Count) == -1)
                    {
                        info.Column.AppearanceCell.BackColor 
    = Color.Gold;
                        selectedColumns.Add(info.Column.FieldName);
                    }
                    
    else
                    {
                        selectedColumns.Remove(info.Column.FieldName);
                        info.Column.AppearanceCell.BackColor 
    = Color.Transparent;
                    }
                }
            }


        }
    }
    代码
    namespace MemberLevelSecurityDemo.Module
    {
        
    partial class ViewController1
        {
            
    /// <summary>
            
    /// Required designer variable.
            
    /// </summary>
            private System.ComponentModel.IContainer components = null;

            
    /// <summary> 
            
    /// Clean up any resources being used.
            
    /// </summary>
            
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                
    if (disposing && (components != null))
                {
                    components.Dispose();
                }
                
    base.Dispose(disposing);
            }

            
    #region Component Designer generated code

            
    /// <summary>
            
    /// Required method for Designer support - do not modify
            
    /// the contents of this method with the code editor.
            
    /// </summary>
            private void InitializeComponent()
            {
                
    this.components = new System.ComponentModel.Container();
                
    this.SetCurrentColumnValue = new DevExpress.ExpressApp.Actions.ParametrizedAction(this.components);
                
    // 
                
    // SetCurrentColumnValue
                
    // 
                this.SetCurrentColumnValue.Caption = "Set Current Column Value";
                
    this.SetCurrentColumnValue.ConfirmationMessage = null;
                
    this.SetCurrentColumnValue.Id = "SetCurrentColumnValue";
                
    this.SetCurrentColumnValue.ImageName = null;
                
    this.SetCurrentColumnValue.ShortCaption = null;
                
    this.SetCurrentColumnValue.Shortcut = null;
                
    this.SetCurrentColumnValue.Tag = null;
                
    this.SetCurrentColumnValue.TargetObjectsCriteria = null;
                
    this.SetCurrentColumnValue.TargetViewId = null;
                
    this.SetCurrentColumnValue.ToolTip = null;
                
    this.SetCurrentColumnValue.TypeOfView = null;
                
    this.SetCurrentColumnValue.Execute += new DevExpress.ExpressApp.Actions.ParametrizedActionExecuteEventHandler(this.SetCurrentColumnValue_Execute);
                
    // 
                
    // ViewController1
                
    // 
                this.TargetViewType = DevExpress.ExpressApp.ViewType.ListView;
                
    this.TypeOfView = typeof(DevExpress.ExpressApp.ListView);
                
    this.ViewControlsCreated += new System.EventHandler(this.ViewController1_ViewControlsCreated);

            }

            
    #endregion

            
    private DevExpress.ExpressApp.Actions.ParametrizedAction SetCurrentColumnValue;
        }
    }
     }

     欢迎转载,转载请注明出处:http://www.cnblogs.com/Tonyyang/

  • 相关阅读:
    利用“通过'反射方式'创建的对象”来创建对象的性能问题?
    Linq 学习笔记(一)
    说说数据类型转换帮助类
    使用公共静态属性的方式来代替公共静态字段(C#)
    支持差异数据保存的数据库实体类设计(二)(续)
    编程杂记
    Linq 学习笔记(二)
    UI版本WinDBG常用命令
    Oracle数据库卸载
    SAS框架问世
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/1923142.html
Copyright © 2011-2022 走看看