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/

  • 相关阅读:
    HDU 1175 连连看 (DFS+剪枝)
    CF702F T-Shirts
    UVA12538 Version Controlled IDE
    P2605 [ZJOI2010]基站选址
    P3835 【模板】可持久化平衡树
    CF915E Physical Education Lessons
    P3701 「伪模板」主席树
    P1198 [JSOI2008]最大数
    P3466 [POI2008]KLO-Building blocks
    P3919 【模板】可持久化数组(可持久化线段树/平衡树)
  • 原文地址:https://www.cnblogs.com/Tonyyang/p/1923142.html
Copyright © 2011-2022 走看看