找回密码
 立即注册

QQ登录

只需一步,快速开始

summonyyq

银牌会员

22

主题

69

帖子

3765

积分

银牌会员

积分
3765

活字格认证

summonyyq
银牌会员   /  发表于:2014-9-3 14:27  /   查看:6251  /  回复:4
想要在Spread中实现多层表头和多行显示一条数据
sheet.LayoutMode = FarPoint.Web.Spread.SheetView.LayoutModeType.RowTemplateLayoutMode;

sheet.WorksheetTemplate.ColumnHeaderTemplate.RowCount = 2;
sheet.WorksheetTemplate.RowTemplate.RowCount = 2;

sheet.Columns[1].Label = "员工";
sheet.Columns[2].Label = "联系方式";
...???
我想给第二行表头赋值应该怎么实现?

4 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2014-9-3 18:57:00
沙发
回复 1楼summonyyq的帖子

问题已经查收,明天处理后反馈给您结果。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-9-23 13:56:00
板凳
回复 1楼summonyyq的帖子

抱歉,让你久等了。请问问题解决了吗?

测试代码如下:

  1.             FpSpread1.ActiveSheetView.LayoutMode = FarPoint.Web.Spread.SheetView.LayoutModeType.RowTemplateLayoutMode;
  2.             FarPoint.Web.Spread.WorksheetTemplate template1 = FpSpread1.Sheets[0].WorksheetTemplate;
  3.             template1.ColumnCount = 3;
  4.             template1.ColumnHeaderTemplate.RowCount = 2;
  5.             template1.RowTemplate.RowCount = 2;
  6.             template1.LayoutColumns[1].Width = 250;
  7.             //Set row template's layout
  8.             template1.RowTemplate.LayoutCells[1, 1].ColumnSpan = 2;
  9.             //set column header template's layout
  10.             template1.ColumnHeaderTemplate.LayoutCells[0, 0].RowSpan = 2;
  11.             template1.ColumnHeaderTemplate.LayoutCells[1, 1].ColumnSpan = 2;

  12.             DataTable dt = new DataTable();
  13.             dt.Columns.Add("ProductID");
  14.             dt.Columns.Add("ProductName");
  15.             dt.Columns.Add("Region");
  16.             dt.Columns.Add("Date");
  17.             dt.Columns.Add("Description");
  18.             dt.Rows.Add(new object[] { 21, "Computer", "China", "2010/1/1", "Using newest display adapter" });
  19.             dt.Rows.Add(new object[] { 36, "Notebook", "Vietnam", "2010/6/1", "Dell" });
  20.             dt.Rows.Add(new object[] { 13, "Hard disk", "Taiwan", "2011/1/1", "Speed is 7200" });
  21.             FpSpread1.Sheets[0].DataSource = dt;

  22.             template1.LayoutCells[0, 0].DataIndex = 0;
  23.             template1.LayoutCells[1, 0].DataIndex = 1;
  24.             template1.LayoutCells[0, 1].DataIndex = 2;
  25.             template1.LayoutCells[0, 2].DataIndex = 3;
  26.             template1.LayoutCells[1, 1].DataIndex = 4;
复制代码


效果图:
Untitled.png
回复 使用道具 举报
summonyyq
银牌会员   /  发表于:2014-9-23 15:19:00
地板
回复 3楼iceman的帖子

无法实现,这种方法能按要求显示出来,但是列标题不知道怎么修改。

我用了最笨的方法,设置好标题,然后一条一条的赋值
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2014-9-23 19:57:00
5#
回复 4楼summonyyq的帖子

可以在 3# 中的代码绑定之后,修改 ColumnHeader 文本:

  1. protected void Button1_Click(object sender, EventArgs e)
  2.         {
  3.             FpSpread1.ActiveSheetView.LayoutMode = FarPoint.Web.Spread.SheetView.LayoutModeType.RowTemplateLayoutMode;
  4.             FarPoint.Web.Spread.WorksheetTemplate template1 = FpSpread1.Sheets[0].WorksheetTemplate;
  5.             template1.ColumnCount = 3;
  6.             template1.ColumnHeaderTemplate.RowCount = 2;
  7.             template1.RowTemplate.RowCount = 2;
  8.             template1.LayoutColumns[1].Width = 250;
  9.             //Set row template's layout
  10.             template1.RowTemplate.LayoutCells[1, 1].ColumnSpan = 2;
  11.             //set column header template's layout
  12.             template1.ColumnHeaderTemplate.LayoutCells[0, 0].RowSpan = 2;
  13.             template1.ColumnHeaderTemplate.LayoutCells[1, 1].ColumnSpan = 2;

  14.             DataTable dt = new DataTable();
  15.             dt.Columns.Add("ProductID");
  16.             dt.Columns.Add("ProductName");
  17.             dt.Columns.Add("Region");
  18.             dt.Columns.Add("Date");
  19.             dt.Columns.Add("Description");
  20.             dt.Rows.Add(new object[] { 21, "Computer", "China", "2010/1/1", "Using newest display adapter" });
  21.             dt.Rows.Add(new object[] { 36, "Notebook", "Vietnam", "2010/6/1", "Dell" });
  22.             dt.Rows.Add(new object[] { 13, "Hard disk", "Taiwan", "2011/1/1", "Speed is 7200" });
  23.             FpSpread1.Sheets[0].DataSource = dt;

  24.             template1.LayoutCells[0, 0].DataIndex = 0;
  25.             template1.LayoutCells[1, 0].DataIndex = 1;
  26.             template1.LayoutCells[0, 1].DataIndex = 2;
  27.             template1.LayoutCells[0, 2].DataIndex = 3;
  28.             template1.LayoutCells[1, 1].DataIndex = 4;

  29.             for (int i = 0; i < FpSpread1.Sheets[0].ColumnHeader.Rows.Count; i++)
  30.             {
  31.                 for (int j = 0; j < this.FpSpread1.Sheets[0].ColumnHeader.Columns.Count; j++)
  32.                 {
  33.                     FpSpread1.Sheets[0].ColumnHeader.Cells[i, j].Text = "test";
  34.                 }
  35.             }
  36.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部