找回密码
 立即注册

QQ登录

只需一步,快速开始

cngrain

中级会员

32

主题

118

帖子

656

积分

中级会员

积分
656

活字格认证

cngrain
中级会员   /  发表于:2012-7-11 12:17  /   查看:7252  /  回复:10
如何实现冻结行列,是否是通过 FpSpread1.ActiveSheetView.FrozenColumnCount = 2;
            FpSpread1.ActiveSheetView.FrozenRowCount = 4;来实现?
通过该种方式实现后,表格的样式会有改变,冻结处的线会变成两条,如何不让样式进行改变?

10 个回复

倒序浏览
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-11 14:05:00
沙发
存在固定列Spread中,可以在该页面中添加以下代码:
  1.     protected override void Render(HtmlTextWriter writer)
  2.     {
  3.         Table table = FpSpread1.FindControl("viewport") as Table;
  4.         table.Style["border-left-style"] = "none";
  5.             
  6.         base.Render(writer);
  7.     }
复制代码
回复 使用道具 举报
cngrain
中级会员   /  发表于:2012-7-11 14:28:00
板凳
table.Style["border-left-style"] = "none";
改行代码提示“未将对象引用到对象的实例”
回复 使用道具 举报
cngrain
中级会员   /  发表于:2012-7-11 14:31:00
地板
对了,我里面的sheet是在后台动态添加的。
回复 使用道具 举报
cngrain
中级会员   /  发表于:2012-7-11 14:34:00
5#
又发现一个问题,冻结列之后,表格最上面会有一行空的白行。
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-11 14:36:00
6#
附件是我测试用的代码,你看一下我们代码之间是否存在差异,如果存在差异,情将你的代码发给我们调试:

5160_Frozen.zip (7.07 KB, 下载次数: 83)
回复 使用道具 举报
cngrain
中级会员   /  发表于:2012-7-12 19:59:00
7#

Demo及问题见附件

问题.png
WebSite1.rar (1.96 MB, 下载次数: 135)
回复 使用道具 举报
cngrain
中级会员   /  发表于:2012-7-12 20:00:00
8#
图中红色边框是有问题的,麻烦尽快帮忙调试,谢谢!
回复 使用道具 举报
ZenosZeng讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-7-13 11:24:00
9#
cngrain 你好

从你Spread中单元格的布局来看,可以使用下面的代码设置相应单元格的边框,从而达到解决红框中线粗的问题:
  1.     protected override void Render(HtmlTextWriter writer)
  2.     {
  3.         Table table = FpSpread1.FindControl("viewport") as Table;
  4.         if (table != null)
  5.         {
  6.             for (int row = 0; row < FpSpread1.ActiveSheetView.RowCount - FpSpread1.ActiveSheetView.FrozenRowCount; row++)
  7.             {
  8.                 table.Rows[row].Cells[0].Style["border-left-color"] = "rgb(192, 192, 192)";
  9.             }

  10.             for (int col = 0; col < FpSpread1.ActiveSheetView.ColumnCount - FpSpread1.ActiveSheetView.FrozenColumnCount; col++)
  11.             {
  12.                 table.Rows[0].Cells[col].Style["border-top-color"] = "rgb(192, 192, 192)";
  13.             }
  14.         }

  15.         Table table1 = FpSpread1.FindControl("viewport1") as Table;
  16.         if (table1 != null)
  17.         {
  18.             for (int row = 0; row < FpSpread1.ActiveSheetView.FrozenRowCount; row++)
  19.             {
  20.                 table1.Rows[row].Cells[0].Style["border-left-color"] = "rgb(192, 192, 192)";
  21.             }            
  22.         }

  23.         Table table2 = FpSpread1.FindControl("viewport2") as Table;
  24.         if (table2 != null)
  25.         {
  26.             table2.Rows[0].Cells[0].Style["border-top-color"] = "rgb(192, 192, 192)";
  27.             table2.Rows[0].Cells[0].Style["border-rigth-color"] = "rgb(192, 192, 192)";
  28.         }

  29.         base.Render(writer);
  30.     }
复制代码
回复 使用道具 举报
cngrain
中级会员   /  发表于:2012-7-13 16:13:00
10#
将你的代码贴上之后,左上角表格的下边框和右边框显示的还有点儿问题。
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部