找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-2 18:25  /   查看:6073  /  回复:14
1金币
请问版主:1、Spread.Net 的table列头不能设置为CheckBox类型,SpreadJS是可以设置的是吗?就是这样的。


2、我是想清除设置的表格的分组数据源这种,但是不改变列的大小。我目前用的是fpSpread1.Sheets[0] = new SheetView()这种,但这个是每次都是重新一个页面,列的类型,大小都变了。我是想保留当前页,把页面的分组清除了。我可以重新设置分组数据源。
我现在的多DataTable数据源是这样操作的,对DataTable直接进行添加、删除。如果数据行有改变就全部重新绑定。
全部重新绑定的情况下,我又不想改变我做好的模板的列类型。

3、我如何在锁定某行不能编辑的情况下,可以拖动改变列的宽度。    (我使用下面代码可以设置标题行不可编辑,但是列宽也无法拖动改变了。我需要可以拖动改变列宽)
fpSpread1.AsWorkbook().ActiveSheet.UsedRange.Locked = false;
                fpSpread1.ActiveSheet.Rows[0].Locked = true;            
fpSpread1.ActiveSheet.Protect = true;

14 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-8 18:10:04
15#
不客气
回复 使用道具 举报
冰岛
注册会员   /  发表于:2023-6-8 14:03:54
14#
感谢版主,解决了问题。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-7 17:11:02
13#


请C参考这个修改后的demo,多次点击第一个按钮来验证


WindowsFormsApp1.zip (17.57 MB, 下载次数: 1210)
回复 使用道具 举报
冰岛
注册会员   /  发表于:2023-6-7 10:59:06
12#
好的,谢谢版主
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-7 09:39:34
11#
这个错误还是和之前的一样,是创建table时没有 成功,返回的table 是null所以后续操作会报错。  我今天在你原有的demo上改一下,然后在发给你
回复 使用道具 举报
冰岛
注册会员   /  发表于:2023-6-6 16:28:22
10#
Richard.Ma 发表于 2023-6-6 16:09
嗯,1,3我来提需求

关于问题2,取消绑定和删除table分别用


我使用了几种方法,以及这几种方法混合使用,均无法删除和重新绑定。请版主帮我看看代码,怎么操作可以重新绑定。
fpSpread1.AsWorkbook().ActiveSheet.Tables.DataSource = null;
fpSpread1.AsWorkbook().ActiveSheet.Tables.Delete(true);
fpSpread1.AsWorkbook().ActiveSheet.Tables.Delete();
fpSpread1.AsWorkbook().ActiveSheet.Tables.Unlist();

image.png100788268.png



private void btnSetData2()
        {
            //fpSpread1.AsWorkbook().ActiveSheet.Worksheet.Delete();
            for (var i = 0; i < fpSpread1.AsWorkbook().ActiveSheet.Tables.Count; i++)
            {
                //var tb = fpSpread1.AsWorkbook().ActiveSheet.Tables;
                //tb.Delete();
                //fpSpread1.AsWorkbook().ActiveSheet.Tables.Worksheet.Delete();
                //fpSpread1.AsWorkbook().ActiveSheet.Tables.DataSource = null;
                //fpSpread1.AsWorkbook().ActiveSheet.Tables.Delete(true);
                fpSpread1.AsWorkbook().ActiveSheet.Tables.Delete();
                //fpSpread1.AsWorkbook().ActiveSheet.Tables.Unlist();
            }

            fpSpread1.Sheets[0].Rows[2, fpSpread1.ActiveSheet.Rows.Count - 1].Visible = false;
            fpSpread1.Sheets[0].Columns[10, fpSpread1.ActiveSheet.Columns.Count - 1].Visible = false;

            int RowsCount = 1;
            for (int i = 0; i < ds.Tables.Count; i++)
            {
                GrapeCity.Spreadsheet.IWorksheet TestActiveSheet = fpSpread1.AsWorkbook().ActiveSheet;
                //TestActiveSheet.AutoFilterMode = false;

                string nRange = "A" + (RowsCount) + ":G" + (RowsCount + ds.Tables.Rows.Count + 2);

                GrapeCity.Spreadsheet.ITable table = TestActiveSheet.Range(nRange).CreateTable(true);
                table.ShowAutoFilter = false;
                table.AutoGenerateColumns = true;
                table.DataSource = ds.Tables;
                table.Name = i.ToString();              

                RowsCount += ds.Tables.Rows.Count + 1;
                fpSpread1.ActiveSheet.Rows[0, RowsCount - i].Visible = true;
                fpSpread1.ActiveSheet.Columns[0, ds.Tables.Columns.Count - 1].Visible = true;

            }            

            FarPoint.Win.Spread.CellType.CheckBoxCellType dateType = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
            fpSpread1.Sheets[0].Columns[0].CellType = dateType;
            fpSpread1.ActiveSheet.Columns[0, 10].Width = 100;
            //fpSpread1.ActiveSheet.Columns[1, 5].Locked = true;
            //fpSpread1.ActiveSheet.Protect = true;
        }

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-6 16:09:10
9#
嗯,1,3我来提需求

关于问题2,取消绑定和删除table分别用
  1.                 table.DataSource=null;
  2.                 table.Delete();
复制代码


回复 使用道具 举报
冰岛
注册会员   /  发表于:2023-6-6 09:53:10
8#
Richard.Ma 发表于 2023-6-5 17:44
清除数据源就是把DataSource设置为null即可。

1、3这两个需求暂时还没有明确的开发计划,我可以先提给研 ...


请帮我提一下1、3这两个需求计划。
清除数据源就是把DataSource设置为null即可。我使用了几种方法,以及这几种方法混合使用后。
fpSpread1.AsWorkbook().ActiveSheet.Tables.DataSource = null;
fpSpread1.AsWorkbook().ActiveSheet.Tables.Delete(true);
fpSpread1.AsWorkbook().ActiveSheet.Tables.Unlist();
再去创建 GrapeCity.Spreadsheet.ITable table = TestActiveSheet.Range(nRange).CreateTable(true);都会报错。


我需要的是清除  fpSpread1.Sheets[0]中创建过的GrapeCity.Spreadsheet.ITable ,让我可以重新创建GrapeCity.Spreadsheet.ITable 。
谢谢版主。

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-5 17:44:31
7#
清除数据源就是把DataSource设置为null即可。

1、3这两个需求暂时还没有明确的开发计划,我可以先提给研发
回复 使用道具 举报
冰岛
注册会员   /  发表于:2023-6-5 14:51:23
6#
本帖最后由 冰岛 于 2023-6-5 15:09 编辑
Richard.Ma 发表于 2023-6-5 14:03
1.嗯,spread.net目前没有办法在table的表头设置复选框。如果你不需要table表头的过滤器的话,可以隐藏tabl ...

“2. “数据源有行增加、删除的情况”,那么你要根据数据源新的行数重新设置table的行数,然后再绑定数据。”
是的
请问清除数据源的方法是怎么呢?


1、3的需求在以后的版本中会实现吗?
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部