using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Repository; namespace Thread {
public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm {
private IList<Order> list = null;
private IList<OrderGoods> orderGoods = null;
public XtraForm1() {
InitializeComponent();
list = GetOrders();
orderGoods = GetOrderGoods();
} private IList<Order> GetOrders() {
var list = new List<Order>();
list.Add(new Order { OrderNo = "A001", Rearmk = "Rearmk1" });
list.Add(new Order { OrderNo = "A002", Rearmk = "Rearmk2" });
list.Add(new Order { OrderNo = "A003", Rearmk = "Rearmk3" });
return list;
} private IList<OrderGoods> GetOrderGoods() {
var list = new List<OrderGoods>();
list.Add(new OrderGoods { OrderNo = "A001", Qty = , GoodsNo = "G01" });
list.Add(new OrderGoods { OrderNo = "A001", Qty = , GoodsNo = "G02" });
list.Add(new OrderGoods { OrderNo = "A001", Qty = , GoodsNo = "G03" }); list.Add(new OrderGoods { OrderNo = "A002", Qty = , GoodsNo = "G04" });
list.Add(new OrderGoods { OrderNo = "A002", Qty = , GoodsNo = "G05" });
list.Add(new OrderGoods { OrderNo = "A002", Qty = , GoodsNo = "G06" }); list.Add(new OrderGoods { OrderNo = "A003", Qty = , GoodsNo = "G07" });
list.Add(new OrderGoods { OrderNo = "A003", Qty = , GoodsNo = "G08" });
list.Add(new OrderGoods { OrderNo = "A003", Qty = , GoodsNo = "G09" }); return list;
} private void XtraForm1_Load(object sender, EventArgs e) {
this.gridControl1.DataSource = list;
} private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e) { } private void gridControl1_Click(object sender, EventArgs e) {
} DataTable table; private void gridView1_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e) {
var order = gridView1.GetFocusedRow() as Order;
table = GetOrderGoodsTable(order.OrderNo);
this.gridControl2.DataSource = table;
} private DataTable GetOrderGoodsTable(string gNo) { if (gNo == "A001") {
table = new DataTable("CartonExTemp");
table.Columns.Add(new DataColumn("GoodsNo", typeof(string)));
table.Columns.Add(new DataColumn("X", typeof(int)));
table.Columns.Add(new DataColumn("M", typeof(int)));
table.Columns.Add(new DataColumn("L", typeof(int)));
table.Rows.Add("G001", , , );
table.Rows.Add("G002", , , );
table.Rows.Add("G003", , , );
}
else if (gNo == "A002") {
table = new DataTable("CartonExTemp");
table.Columns.Add(new DataColumn("GoodsNo", typeof(string)));
table.Columns.Add(new DataColumn("", typeof(int)));
table.Columns.Add(new DataColumn("", typeof(int)));
table.Rows.Add("G003", , );
table.Rows.Add("G004", , );
table.Rows.Add("G005", , );
}
else { table = new DataTable("CartonExTemp");
table.Columns.Add(new DataColumn("GoodsNo", typeof(string)));
table.Columns.Add(new DataColumn("", typeof(int)));
table.Columns.Add(new DataColumn("", typeof(int)));
table.Rows.Add("G003", , );
table.Rows.Add("G004", , );
table.Rows.Add("G005", , );
}
return table;
} private void gridView2_DataSourceChanged(object sender, EventArgs e) {
gridView2.Columns.Clear();
foreach (DataColumn dc in table.Columns) {
var gridColumn1 = gridView2.Columns.AddVisible(dc.ColumnName);
if (dc.ColumnName == "GoodsNo") {
gridColumn1.Caption = "货号";
gridColumn1.OptionsColumn.AllowEdit = false;
gridColumn1.Width = ;
}
else {
gridColumn1.ColumnEdit = new RepositoryItemSpinEdit();
}
}
gridView2.BestFitColumns();
} } public class Order {
public string OrderNo { get; set; }
public string Rearmk { get; set; }
} public class OrderGoods {
public string GoodsNo { get; set; }
public int Qty { get; set; }
public string OrderNo { get; set; }
}
}

回车事件,转到下一可编辑的单元格

  private void gridView1_KeyDown(object sender, KeyEventArgs e) {
GridView grid = sender as GridView; if (e.KeyCode == Keys.Enter) {
int focusedRowHandle = grid.FocusedRowHandle; int index = GetNextIndex(grid);
this.Text = string.Format("index={0},grid.FocusedColumn.VisibleIndex={1}", index, grid.FocusedColumn.VisibleIndex);
if (index == grid.VisibleColumns.Count - ) {
focusedRowHandle++;
}
BeginInvoke(new MethodInvoker(() => {
grid.FocusedRowHandle = focusedRowHandle;
grid.FocusedColumn = grid.VisibleColumns[index];
grid.ShowEditor();
})); }
}

DevExpress GridControl 控件二表连动的更多相关文章

  1. DevExpress GridControl控件行内新增、编辑、删除添加选择框

    以下为内容以图片居多1234表示点击顺序 先新增一行 操作和新增数据行一样 打开ColumnEdit  选择new ButtenEdit  new上方会出现一个系统命名的button 命名可以更改必须 ...

  2. DevExpress GridControl控件行内新增、编辑、删除添加选择框(转)

    http://blog.csdn.net/m1654399928/article/details/21951519 1.首先到GridControl控件设计里设置属性Repository    (In ...

  3. 设置DevExpress GridControl控件时间列显示时、分、秒样式

    如题,如果Dev GridControl控件绑定DataTable数据源时,DataTable中的某一列为Date类型时,GridControl默认显示样式只显示当前日期,并不会将时.分.秒显示出来. ...

  4. DevExpress GridControl 控件点滴

    一.常用控件样式 public void setDgv(DevExpress.XtraGrid.Views.Grid.GridView gridView1) { gridView1.OptionsVi ...

  5. DevExpress gridControl控件动态绑定列 zt

    DataTable dt = =Query.GetCustome=(ref customColumnCount); //绑定列 gridView.Columns.Add(}); gridView.Co ...

  6. DevExpress之GridControl控件小知识

    DevExpress之GridControl控件小知识 一.当代码中的DataTable中有建数据关系时,DevExpress 的 GridControl 会自动增加一个子视图 .列名也就是子表的字段 ...

  7. DevExpress控件的GridControl控件小结

    DevExpress控件的GridControl控件小结 (由于开始使用DevExpress控件了,所以要点滴的记录一下) 1.DevExpress控件组中的GridControl控件不能使横向滚动条 ...

  8. DevExpress的GridControl控件更新數據問題解決辦法

    開發WPF程序時,使用Devexpress的GridControl控件用ItemSource綁定數據,在頁面進行編輯時,當屬性繼承INotifyPropertyChanged接口時會同步更新後臺數據. ...

  9. 【转】Devexpress使用之:GridControl控件(合并表头)

    Devexpress系列控件功能很强大,使用起来也不太容易,我也是边摸索边使用,如果有时间我会把常用控件的使用方法整理出来的. using System; using System.Collectio ...

随机推荐

  1. ECMAScript Obejct 属性操作API

    Object 创建对象 我们有很多种方法创建一个对象,Object.create, Object.assign Object.create //字面量 var o = {}; // 等同于 var o ...

  2. leetcode 67. Add Binary (高精度加法)

    Given two binary strings, return their sum (also a binary string). For example,a = "11"b = ...

  3. CodeForces - 613D:Kingdom and its Cities(虚树+DP)

    Meanwhile, the kingdom of K is getting ready for the marriage of the King's daughter. However, in or ...

  4. BZOJ3165:[HEOI2013]Segment

    浅谈标记永久化:https://www.cnblogs.com/AKMer/p/10137227.html 题目传送门:https://www.lydsy.com/JudgeOnline/proble ...

  5. poj3013Big Chrismas Tree——树转换spfa

    题目:http://poj.org/problem?id=3013 看似生成树,实则最短路,可以将题意转化为点权*根到此点的边权和(最短路使其最小). 代码如下: #include<iostre ...

  6. POJ2253(djkstra求最长最短边)

    Frogger Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 32257   Accepted: 10396 Descrip ...

  7. jquery中attr() & prop() 的区别与其实现方法

    $(function(){ $('#check').attr('checked'); // undefind ???一头雾水 }) 在jquery中 attr 本来就是用来设置或者获取属性的,可是上面 ...

  8. Algorithms & Data structures in C++& GO ( Lock Free Queue)

    https://github.com/xtaci/algorithms //已实现 ( Implemented ): Array shuffle https://github.com/xtaci/al ...

  9. linux下使用c判断文件夹是否为空的小程序

    自己写了一个 判断文件夹是否为空的小代码 //文件夹操作相关的函数的帮助$: man 3 readdir #include <stdio.h> #include <sys/types ...

  10. Hashtable源码剖析

    Hashtable简介 Hashtable同样是基于哈希表实现的,同样每个元素是一个key-value对,其内部也是通过单链表解决冲突问题,容量不足(超过了阀值)时,同样会自动增长. Hashtabl ...