xml地图|网站地图|网站标签 [设为首页] [加入收藏]

数据源修改

来源:http://www.ccidsi.com 作者:集成介绍 人气:151 发布时间:2019-05-08
摘要:使用场景 当从Column艾德it(如SearchLookUp艾德it)中挑选一条记下后,ColumnEdit的数据源不再出现那条记下。效果图如下 选择前 慎选一条记下后,上一条记下不再显得。 此处是SearchLookUpEdit,

使用场景

当从Column艾德it(如SearchLookUp艾德it)中挑选一条记下后,ColumnEdit的数据源不再出现那条记下。效果图如下

选择前

图片 1

慎选一条记下后,上一条记下不再显得。

图片 2

此处是SearchLookUpEdit,所以会有非凡的拍卖,同样适用于LookUp艾德it

         //不显示下拉按钮和禁止下拉
         replaceLueStaff.Buttons.Clear();
         replaceLueStaff.ShowDropDown = DevExpress.XtraEditors.Controls.ShowDropDown.Never;
         replaceLueStaff.Click  = new EventHandler(replaceLueStaff_Click);



        void replaceLueStaff_Click(object sender, EventArgs e)
        {
            //获取选中的ColumnEdit
            SearchLookUpEdit lue = sender as SearchLookUpEdit;
            //linq实现 not in 筛选
            //gvActor.DataSource为当前gridview,m_dtStaffAll为控件数据源
            var selectedIds = ((DataView)(gvActor.DataSource)).OfType<DataRowView>().Select(x => x["STAFF_ID"].ToString());
            var query = from p in m_dtStaffAll.AsEnumerable()
                        where !(from x in selectedIds select x).Contains(p["STAFF_ID"].ToString())
                        select p;
            lue.Properties.DataSource = query.AsDataView();
            lue.ShowPopup();
        }

1,增添新行用InitNewRow事件,给新行某字段赋值。后得了编辑。

一、在gridcontrol列表控件中动用单选框作为采纳列,这里有二种情势。

private void grdView_InitNewRow(object sender, DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs e)
    {
     DevExpress.XtraGrid.Views.Grid.GridView view = sender as DevExpress.XtraGrid.Views.Grid.GridView;
     view.SetRowCellValue(e.RowHandle, view.Columns["EnterID"], this.dS_MEnterStoreView.MEnterStore[0].ID);
     this.grdControl.EmbeddedNavigator.Buttons.EndEdit.DoClick();
     this.grdView.UpdateCurrentRow();
    }

主意1:选拔gridcontrol控件的Run Designer按键,增多一列,设置该列的Column艾德it为checkedit。如下图:

二,要是举办行验证,就在换行时时行,用grdView_FocusedRowChanged事件

图片 3

private void grdView_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
    {
     WsClient.WS_MEnterStore.DS_MEnterStoreView.MEnterDetailRow row = (WsClient.WS_MEnterStore.DS_MEnterStoreView.MEnterDetailRow)this.grdView.GetDataRow(e.FocusedRowHandle);

     if (row != null)
     {
      if ((this.OperState == Common.Enum.TOperState.UnConfirmNew)
       || (this.OperState == Common.Enum.TOperState.UnConfirmEdit))
      {
       this.InitComboBoxValue(row, row.IsGoodIDNull()?0:row.GoodID, false);
       this.InitBatchComboBoxValue(row, row.IsGoodIDNull()?0:row.GoodID, false);
      }
     }
    }

代码如下:

三,假如急需转移行的某一列的还要改动别的的列用grdView_CellValueChanged事件

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                List<Student> studentList = new List<Student> { new Student() { Selected="N",Name="张三",Age=22 }, 
                new Student() { Selected="N",Name="李四",Age=20 }, new Student() { Selected="N",Name="王五",Age=24}};
                repositoryItemCheckEdit1.ValueUnchecked = "N";
                //定义选中状态值
                repositoryItemCheckEdit1.ValueChecked = "Y";
                //绑定数据
                gridControl1.DataSource = studentList;
                //gridControl2.DataSource = studentList;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        /// <summary>
        /// 得到选中项
        /// </summary>
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            try
            {
                if (gridView1.FocusedRowHandle >= 0)
                {
                    string str = string.Empty;
                    for (int i = 0; i < gridView1.RowCount; i  )
                    {
                        if (gridView1.GetRowCellValue(i, "Selected").ToString().Equals("Y"))
                        {
                            if(string.IsNullOrEmpty(str))
                            {
                                str = gridView1.GetRowCellValue(i, "Name").ToString();
                            }
                            else
                            {
                                str ="n"  gridView1.GetRowCellValue(i, "Name").ToString();
                            }
                        }
                    }
                    MessageBox.Show(str);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
 public class Student
    {
        public string Selected { get; set; }
        public string Name { get; set; }
        public int Age { get; set;}
    }
private void grdView_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
    {
     if (this.grdView.FocusedColumn == e.Column)
     {
 if (e.Column == this.colAmount)
      {
     }
 }
 }

 效果图:

4,如果需在离开行的时候须求表达,则用grdView_BeforeLeaveRow事件.

图片 4

DevExpress XtraGrid的作用实在强大,刚使用的时候见到一大片属性设置,分不清西南西南,参照demo和行使中的一些经验,记录一下应用办法。今后数据库访问都施用O宝马7系M技艺了,对于DataSouce绑定以下是以IList为验证对象。

 

控件基本概念   DevExpress.XtraGrid.GridControl gridControl壹;

方式二:选择gridcontrol控件的Run Designer按钮,选中gridview,设置gridview的MultiSelect和MultiSelectMode属性。如下图:

1、 数据绑定(IList)

图片 5

DevExpress.XtraGrid.Views.Grid.GridView gridView1;
 IList<MyClass> list = new BindingList<MyClass>();
 //初始list
 list.Add(A);
 list.Add(B);
 ………..
 gridControl1.DataSource = list;

代码如下:

贰、 在Grid上编写制定数据

 private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                List<Student> studentList = new List<Student> { new Student() { Selected="N",Name="张三",Age=22 }, 
                new Student() { Selected="N",Name="李四",Age=20 }, new Student() { Selected="N",Name="王五",Age=24}};
                //repositoryItemCheckEdit1.ValueUnchecked = "N";
                //定义选中状态值
                //repositoryItemCheckEdit1.ValueChecked = "Y";
                //绑定数据
                //gridControl1.DataSource = studentList;
                gridControl2.DataSource = studentList;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
         /// <summary>
        /// 得到选中项
        /// </summary>
  private void simpleButton2_Click(object sender, EventArgs e)
        {
            try
            {
               int[] rowIndex=gridView2.GetSelectedRows();
                string str = string.Empty;
                foreach (int index in rowIndex)
                {
                    if (string.IsNullOrEmpty(str))
                    {
                        str = gridView1.GetRowCellValue(index, "Name").ToString();
                    }
                    else
                    {
                        str  = "n"   gridView1.GetRowCellValue(index, "Name").ToString();
                    }
                }
                MessageBox.Show(str);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

修改属性gridView一.OptionsView.NewItemRowPosition,设为Top或Bottom能够在Grid上添扩充少。

职能图如下:

(在demo中原文:a record object must be inherited from the IEditableObject class if you need the ability to cancel newly added records via the grid)

 图片 6

译:倘诺您供给经过gird打消新建的记录,你的记录对象必须兑现I艾德itableObject

二、在gridcontrol列表控件中央银行使单选框作为展现列

(注:在测试中,认为不需要持续I艾德itableObject,在grid编辑后也能促成撤废。demo通过达成I艾德itableObject的Begin艾德it、Cancel艾德it方法,数据编辑后复原一定数据。不选拔grid直接改造数据,能够设想那种复苏原数据的情势。)

慎选gridcontrol控件的Run Designer按键,增多一列,设置该列的Column艾德it为checkedit,设置gridview的optionscolumn的Allow艾德it为false(设置改列不可编辑)。如下图

3、 修改列(Column)格式

图片 7

DevExpress.XtraGrid.Columns.GridColumn col = gridView1.Columns[0];

代码如下:

数量对齐情势 col.AppearanceCell.TextOptions.HAlignment, 暗中认可值Default,可选值Default/Near/Center/Far。

  private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                 List<Student> studentList = new List<Student> { new Student() { Selected="N",Name="张三",Age=22,IsStudent=true },
                new Student() { Selected="N",Name="李四",Age=20,IsStudent=true }, new Student() { Selected="N",Name="王五",Age=24,IsStudent=false}};
                repositoryItemCheckEdit3.CheckStyle = DevExpress.XtraEditors.Controls.CheckStyles.Standard;
                //复选框加载的状态     实心   空心   空心打勾  
                repositoryItemCheckEdit3.NullStyle = DevExpress.XtraEditors.Controls.StyleIndeterminate.Unchecked;
                //绑定数据
                gridControl1.DataSource = studentList;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }    

    public class Student
    {
        public string Selected { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }

        public bool IsStudent { get; set; }
    }

证实:以下情状是基于从左到右的文字排列;要是从右到左,用法相反。

功用图如下:
图片 8

Default:数据私下认可的对齐格局

 示例代码:

Near:左对齐

Center:居中对齐

Far:右对齐

列标题 col.Caption

相应绑定数据的性子 col.FieldName

排列顺序 col.VisibleIndex

格式化显示数据

Col.DisplayFormat.FormatType

Col.DisplayFormat.Format

Col.DisplayFormat.FormatString

有别于:FormatType/FormatString 使用当前系统的语言区域安装,Format使用一定的

4、 使用Grid内置导航栏

本文由68399皇家赌场发布于集成介绍,转载请注明出处:数据源修改

关键词: 68399皇家赌场 DevExpress Devexpress W repositoryIt

上一篇:input输入框校验

下一篇:没有了

频道精选

最火资讯