首页 > 其他 > 详细

DevExpress GridControl 控件二表连动

时间:2015-12-30 23:46:07      阅读:343      评论:0      收藏:0      [点我收藏+]
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 = 1, GoodsNo = "G01" });
            list.Add(new OrderGoods { OrderNo = "A001", Qty = 2, GoodsNo = "G02" });
            list.Add(new OrderGoods { OrderNo = "A001", Qty = 3, GoodsNo = "G03" });

            list.Add(new OrderGoods { OrderNo = "A002", Qty = 4, GoodsNo = "G04" });
            list.Add(new OrderGoods { OrderNo = "A002", Qty = 5, GoodsNo = "G05" });
            list.Add(new OrderGoods { OrderNo = "A002", Qty = 6, GoodsNo = "G06" });

            list.Add(new OrderGoods { OrderNo = "A003", Qty = 7, GoodsNo = "G07" });
            list.Add(new OrderGoods { OrderNo = "A003", Qty = 8, GoodsNo = "G08" });
            list.Add(new OrderGoods { OrderNo = "A003", Qty = 9, 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", 1, 5, 6);
                table.Rows.Add("G002", 2, 7, 8);
                table.Rows.Add("G003", 3, 9, 10);
            }
            else if (gNo == "A002") {
                table = new DataTable("CartonExTemp");
                table.Columns.Add(new DataColumn("GoodsNo", typeof(string)));
                table.Columns.Add(new DataColumn("30", typeof(int)));
                table.Columns.Add(new DataColumn("31", typeof(int)));
                table.Rows.Add("G003", 1, 4);
                table.Rows.Add("G004", 2, 5);
                table.Rows.Add("G005", 3, 6);
            }
            else {

                table = new DataTable("CartonExTemp");
                table.Columns.Add(new DataColumn("GoodsNo", typeof(string)));
                table.Columns.Add(new DataColumn("30", typeof(int)));
                table.Columns.Add(new DataColumn("31", typeof(int)));
                table.Rows.Add("G003", 10, 40);
                table.Rows.Add("G004", 20, 50);
                table.Rows.Add("G005", 30, 60);
            }
            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 = 20;
                }
                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; }
    }
}

技术分享

DevExpress GridControl 控件二表连动

原文:http://www.cnblogs.com/ycdx2001/p/5090370.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!