找回密码
 立即注册

QQ登录

只需一步,快速开始

Richard.Ma 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-2 18:25  /   查看:6079  /  回复: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;

最佳答案

查看完整内容

1.是的spreadjs可以支持 2.我看你描述的需求比较多。具体是要保留哪些东西,清除什么呢,如果只是要保留列宽,那么可以用ClearRange方法,清除掉其他内容。 3.。目前spread.NET不支持在保护时设置允许调整列宽的选项。 我看你提到了spreadjs,spreadjs是可以提供这个功能选项的

14 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-2 18:26:00
来自 3#
1.是的spreadjs可以支持

2.我看你描述的需求比较多。具体是要保留哪些东西,清除什么呢,如果只是要保留列宽,那么可以用ClearRange方法,清除掉其他内容。

3.。目前spread.NET不支持在保护时设置允许调整列宽的选项。
我看你提到了spreadjs,spreadjs是可以提供这个功能选项的
image.png545665893.png
回复 使用道具 举报
冰岛
注册会员   /  发表于:2023-6-2 18:35:21
2#
好的,谢谢版主
回复 使用道具 举报
冰岛
注册会员   /  发表于:2023-6-5 09:32:37
4#
1、spreadjs可以支持,Spread.Net有方法可以实现列头设置为CheckBox类型吗?

2、我要清除先前设置的多表数据绑定,让他变成没有绑定的状态,以便于让我重新设置多表数据绑定。(目前我的多表数据源有行增加、删除的情况,我是通过重新绑定的方式,显示到Spread中去的,)
3、我需要在锁定某行不能编辑的情况下,可以拖动改变列的宽度,这个Spread.Net可以实现吗?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-5 14:03:05
5#
1.嗯,spread.net目前没有办法在table的表头设置复选框。如果你不需要table表头的过滤器的话,可以隐藏table真实 表头,添加一个假表头,这样就可以添加复选框了,没有其他更好的办法
image.png166621092.png

2. “数据源有行增加、删除的情况”,那么你要根据数据源新的行数重新设置table的行数,然后再绑定数据

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的需求在以后的版本中会实现吗?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-6-5 17:44:31
7#
清除数据源就是把DataSource设置为null即可。

1、3这两个需求暂时还没有明确的开发计划,我可以先提给研发
回复 使用道具 举报
冰岛
注册会员   /  发表于: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-6 16:09:10
9#
嗯,1,3我来提需求

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


回复 使用道具 举报
冰岛
注册会员   /  发表于: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;
        }

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部