Spread.Net 的table列头不能设置为CheckBox类型
请问版主:1、Spread.Net 的table列头不能设置为CheckBox类型,SpreadJS是可以设置的是吗?就是这样的。https://gcdn.grapecity.com.cn/data/attachment/forum/202306/02/123951bt5a5wtaf2ut5u4w.png
2、我是想清除设置的表格的分组数据源这种,但是不改变列的大小。我目前用的是fpSpread1.Sheets = new SheetView()这种,但这个是每次都是重新一个页面,列的类型,大小都变了。我是想保留当前页,把页面的分组清除了。我可以重新设置分组数据源。
我现在的多DataTable数据源是这样操作的,对DataTable直接进行添加、删除。如果数据行有改变就全部重新绑定。
全部重新绑定的情况下,我又不想改变我做好的模板的列类型。
3、我如何在锁定某行不能编辑的情况下,可以拖动改变列的宽度。 (我使用下面代码可以设置标题行不可编辑,但是列宽也无法拖动改变了。我需要可以拖动改变列宽)
fpSpread1.AsWorkbook().ActiveSheet.UsedRange.Locked = false;
fpSpread1.ActiveSheet.Rows.Locked = true;
fpSpread1.ActiveSheet.Protect = true;
1.是的spreadjs可以支持
2.我看你描述的需求比较多。具体是要保留哪些东西,清除什么呢,如果只是要保留列宽,那么可以用ClearRange方法,清除掉其他内容。
3.。目前spread.NET不支持在保护时设置允许调整列宽的选项。
我看你提到了spreadjs,spreadjs是可以提供这个功能选项的
好的,谢谢版主 1、spreadjs可以支持,Spread.Net有方法可以实现列头设置为CheckBox类型吗?
2、我要清除先前设置的多表数据绑定,让他变成没有绑定的状态,以便于让我重新设置多表数据绑定。(目前我的多表数据源有行增加、删除的情况,我是通过重新绑定的方式,显示到Spread中去的,)
3、我需要在锁定某行不能编辑的情况下,可以拖动改变列的宽度,这个Spread.Net可以实现吗?
1.嗯,spread.net目前没有办法在table的表头设置复选框。如果你不需要table表头的过滤器的话,可以隐藏table真实 表头,添加一个假表头,这样就可以添加复选框了,没有其他更好的办法
2. “数据源有行增加、删除的情况”,那么你要根据数据源新的行数重新设置table的行数,然后再绑定数据
3.如上次给你的回复,这个目前实现不了 本帖最后由 冰岛 于 2023-6-5 15:09 编辑
Richard.Ma 发表于 2023-6-5 14:03
1.嗯,spread.net目前没有办法在table的表头设置复选框。如果你不需要table表头的过滤器的话,可以隐藏tabl ...
“2. “数据源有行增加、删除的情况”,那么你要根据数据源新的行数重新设置table的行数,然后再绑定数据。”
是的
请问清除数据源的方法是怎么呢?
1、3的需求在以后的版本中会实现吗?
清除数据源就是把DataSource设置为null即可。
1、3这两个需求暂时还没有明确的开发计划,我可以先提给研发 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中创建过的GrapeCity.Spreadsheet.ITable ,让我可以重新创建GrapeCity.Spreadsheet.ITable 。
谢谢版主。
嗯,1,3我来提需求
关于问题2,取消绑定和删除table分别用
table.DataSource=null;
table.Delete();
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();
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.Rows.Visible = false;
fpSpread1.Sheets.Columns.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.Visible = true;
fpSpread1.ActiveSheet.Columns.Columns.Count - 1].Visible = true;
}
FarPoint.Win.Spread.CellType.CheckBoxCellType dateType = new FarPoint.Win.Spread.CellType.CheckBoxCellType();
fpSpread1.Sheets.Columns.CellType = dateType;
fpSpread1.ActiveSheet.Columns.Width = 100;
//fpSpread1.ActiveSheet.Columns.Locked = true;
//fpSpread1.ActiveSheet.Protect = true;
}
页:
[1]
2