找回密码
 立即注册

QQ登录

只需一步,快速开始

wkj123

高级会员

5

主题

12

帖子

1417

积分

高级会员

积分
1417

活字格认证

最新发帖
wkj123
高级会员   /  发表于:2013-4-17 17:08  /   查看:8162  /  回复:6
除了FpSpread1.ActiveSheetView.AllowSort = true;
还要加什么代码吗

还有我加了
[Serializable]
    public class myColHeader : FarPoint.Web.Spread.GeneralCellType
    {
        public override System.Web.UI.Control PaintCell(string id, System.Web.UI.WebControls.TableCell parent, FarPoint.Web.Spread.Appearance style, FarPoint.Web.Spread.Inset margin, object value, bool upperLevel)
        {
            Control ss = parent.Parent;

            if (!(ss is FarPoint.Web.Spread.FpSpread))
            {
                ss = ss.Parent;
            }
            parent.Attributes.Add("ondblclick", "sortColumn(this)");
            return base.PaintCell(id, parent, style, margin, value, upperLevel);
        }

    }
FpSpread1.ActiveSheetView.EnableRowEditTemplate = true;
myColHeader g = new myColHeader();
FpSpread1.ActiveSheetView.Columns[2].CellType = g;
但生成的代码里FpCellType还是readonly,不是myColHeader,是什么原因呢

2013-04-18 11 26 53.jpg (38.67 KB, 下载次数: 1135)

6 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2013-4-17 19:28:00
沙发
回复 1楼wkj123的帖子

FpSpread1.ActiveSheetView.AllowSort = true;双击表头即可进行排序。请问楼主想实现什么功能?
回复 使用道具 举报
wkj123
高级会员   /  发表于:2013-4-18 11:36:00
板凳
我想点击"220kV","66kV","10kV"时能够按列排序
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-18 16:47:00
地板
回复 3楼wkj123的帖子

你好,
可以通过以下代码实现点击单元格排序:
C#:

  1. protected override void Render(HtmlTextWriter writer)
  2.         {
  3.             Table colHeader=this.FpSpread1.FindControl("viewport") as Table;
  4.             colHeader.Attributes.Add("ondblclick", "sort()");

  5.             base.Render(writer);
  6.         }

  7.         protected void FpSpread1_ButtonCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e)
  8.         {
  9.             FarPoint.Web.Spread.SheetView sv;
  10.             FarPoint.Web.Spread.SortInfo[] s = new FarPoint.Web.Spread.SortInfo[1];
  11.             s[0] = new FarPoint.Web.Spread.SortInfo(0, true);
  12.             sv = FpSpread1.ActiveSheetView;
  13.             sv.SortRows(0, false, true);
  14.         }
复制代码


JS

  1.     <script type="text/javascript">
  2.         function sort() {
  3.             //FpSpread1.SortColumn(document.getElementById(&amp;#39;FpSpread1&amp;#39;),0); return false;
  4.             FpSpread1.CallBack("Botton");
  5.         }
  6.     </script>
复制代码


代码目前还不完善,你只要判断单元格索引即可。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-4-26 17:46:00
5#
回复 4楼iceman的帖子

wkj123 你好,
请问 4# 中的代码是否解决了当前问题呢?
回复 使用道具 举报
wkj123
高级会员   /  发表于:2013-5-30 14:49:00
6#
我自己试了些排序代码,但因为第一行(“设备汇总分析”)是跨列的,所以排序就不支持了,现在已经放弃这个需求了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2013-5-30 18:22:00
7#
回复 6楼wkj123的帖子

有其他问题欢迎继续交流
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部