找回密码
 立即注册

QQ登录

只需一步,快速开始

小龙

注册会员

1

主题

8

帖子

23

积分

注册会员

积分
23
最新发帖
小龙
注册会员   /  发表于:2016-12-10 11:33  /   查看:7590  /  回复:11
  DataSet myDataSet = new DataSet();
        base_ldglBll ldbll = new base_ldglBll();
        System.Collections.ArrayList svCollection = new System.Collections.ArrayList(10);
        DataTable artists;
        DataTable cds;
        private void CreateDataSet()
        {
            myDataSet = new DataSet();
            DataTable ddt = new DataTable();
            DataTable dt1 = new DataTable();
            ddt=ldbll.GetList1("1=1").Tables[0];
            dt1 = ldbll.GetList("1=1").Tables[0];
            myDataSet.EnforceConstraints = false;
            artists = myDataSet.Tables.Add("artists");
            cds = myDataSet.Tables.Add("cds");
            DataRow[] rows = ddt.Select();
            DataRow[] rows1 = dt1.Select();
            artists.Columns.AddRange(new DataColumn[] { new DataColumn("楼栋", typeof(string)) });
            cds.Columns.AddRange(new DataColumn[] { new DataColumn("no", typeof(int)), new DataColumn("楼栋", typeof(string)),new DataColumn("楼层",typeof(string)) });
            foreach (DataRow row in rows)
            {
                artists.Rows.Add(row.ItemArray);
            }
            foreach (DataRow row in rows1)
            {
                cds.Rows.Add(row.ItemArray);
            }
            myDataSet.Relations.Add("cds", artists.Columns["楼栋"], cds.Columns["楼栋"]);

            DefaultSheetDataModel model = (DefaultSheetDataModel)DataGrid1.ActiveSheet.Models.Data;

            foreach (DataTable dt in myDataSet.Tables)
            {
                dt.DefaultView.AllowNew = false;
            }
            model.DataMember = "artists";
            model.DataSource = myDataSet;
            DataGrid1.DataSource = myDataSet;
            DataGrid1.ActiveSheet.GetDataView(false).AllowNew = false;

        }
private void DataGrid1_ChildViewCreated(object sender, FarPoint.Win.Spread.ChildViewCreatedEventArgs e)
        {
            e.SheetView.ColumnHeader.DefaultStyle.Renderer = new FarPoint.Win.Spread.CellType.ColumnHeaderRenderer();
            e.SheetView.RowHeader.DefaultStyle.Renderer = new FarPoint.Win.Spread.CellType.RowHeaderRenderer();
            e.SheetView.SheetCorner.DefaultStyle.Renderer = new FarPoint.Win.Spread.CellType.CornerRenderer();
            DataGrid1.InterfaceRenderer = null;
            DataGrid1.HorizontalScrollBar.Renderer = null;
            DataGrid1.VerticalScrollBar.Renderer = null;
            System.Drawing.Font fpFont = new System.Drawing.Font("Arial", 12);
            e.SheetView.Cells[0, 0, e.SheetView.RowCount - 1, e.SheetView.ColumnCount - 1].Font = fpFont;
            e.SheetView.Cells[0, 0, e.SheetView.RowCount - 1, e.SheetView.ColumnCount - 1].ForeColor = Color.Gray;
            e.SheetView.ColumnHeader.Cells[0, 0, 0, e.SheetView.ColumnCount - 1].Font = fpFont;
            e.SheetView.ColumnHeader.Cells[0, 0, 0, e.SheetView.ColumnCount - 1].BackColor = DataGrid1.ActiveSheet.ColumnHeader.Cells[0, 0].BackColor;
            e.SheetView.ColumnHeader.Cells[0, 0, 0, e.SheetView.ColumnCount - 1].ForeColor = DataGrid1.ActiveSheet.ColumnHeader.Cells[0, 0].ForeColor;
            e.SheetView.RowHeader.AutoText = FarPoint.Win.Spread.HeaderAutoText.Blank;
            e.SheetView.RowHeader.Cells[0, 0, e.SheetView.RowCount - 1, 0].BackColor = DataGrid1.ActiveSheet.RowHeader.Cells[0, 0].BackColor;
            e.SheetView.RowHeader.Cells[0, 0, e.SheetView.RowCount - 1, 0].ForeColor = DataGrid1.ActiveSheet.RowHeader.Cells[0, 0].ForeColor;
            e.SheetView.SheetCornerStyle.BackColor = DataGrid1.ActiveSheet.SheetCornerStyle.BackColor;
            e.SheetView.AlternatingRows[0].BackColor = DataGrid1.ActiveSheet.AlternatingRows[0].BackColor;
            e.SheetView.AlternatingRows[1].BackColor = DataGrid1.ActiveSheet.AlternatingRows[1].BackColor;
            e.SheetView.GrayAreaBackColor = Color.Transparent;

            svCollection.Add(e.SheetView);
        }

获取选中的子表数据

获取选中的子表数据

11 个回复

倒序浏览
小龙
注册会员   /  发表于:2016-12-10 11:36:03
沙发
在线等!!!
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-12 14:53:35
板凳
可否具体描述下您的需求。
另外,界面上的数据修改是和DataSource 同步的,您可以通过DataSource获取到修改后的数据
回复 使用道具 举报
小龙
注册会员   /  发表于:2016-12-13 10:38:23
地板
dexteryao 发表于 2016-12-12 14:53
可否具体描述下您的需求。
另外,界面上的数据修改是和DataSource 同步的,您可以通过DataSource获取到修 ...

是这样的,就一个增删查改的功能,现在想鼠标选中的子表的某行,进行删除修改,现在就只能获取到主表的数据。
回复 使用道具 举报
小龙
注册会员   /  发表于:2016-12-13 10:38:31
5#
dexteryao 发表于 2016-12-12 14:53
可否具体描述下您的需求。
另外,界面上的数据修改是和DataSource 同步的,您可以通过DataSource获取到修 ...

是这样的,就一个增删查改的功能,现在想鼠标选中的子表的某行,进行删除修改,现在就只能获取到主表的数据。
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-13 14:32:06
6#
获取子表的方法
第一个参数是rowIndex

            var subTable = fpSpread1.ActiveSheet.FindChildView(0, 0);
回复 使用道具 举报
小龙
注册会员   /  发表于:2016-12-13 17:19:43
7#
dexteryao 发表于 2016-12-13 14:32
获取子表的方法
第一个参数是rowIndex

这是那个案例我的分层就是看这里的,就是想获取选中的子表数据
blob360101317.png

HierarchyCS.rar

186.47 KB, 下载次数: 169

回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-13 19:04:32
8#
demo收到,测试后给您答复
回复 使用道具 举报
小龙
注册会员   /  发表于:2016-12-19 11:06:19
9#
dexteryao 发表于 2016-12-13 19:04
demo收到,测试后给您答复

测试后的结果是怎样的
回复 使用道具 举报
dexteryao讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2016-12-19 12:08:35
10#
请参考如下代码

  1.         private void button1_Click(object sender, EventArgs e)
  2.         {

  3.             var row = fpSpread1.ActiveSheet.ActiveRowIndex;
  4.             var subTable = fpSpread1.ActiveSheet.FindChildView(row, 0);

  5.             var subRow = subTable.ActiveRowIndex;
  6.             var ThirdTable = subTable.FindChildView(subRow, 0);

  7.             ThirdTable.Cells[0, 0].Text = "abc";
  8.         }
复制代码
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部