找回密码
 立即注册

QQ登录

只需一步,快速开始

安泰得

金牌服务用户

43

主题

106

帖子

421

积分

金牌服务用户

积分
421
安泰得
金牌服务用户   /  发表于:2018-6-12 10:14  /   查看:3615  /  回复:3
你好:
      SpreadJs 如何设置多列头点排序

3 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-6-12 15:31:17
沙发
什么叫多列头点排序?没明白您的意思,您能详细的描述一下吗?
回复 使用道具 举报
安泰得
金牌服务用户   /  发表于:2018-6-13 10:12:27
板凳
function SortHyperlinkCellType() {
}
SortHyperlinkCellType.prototype = new GC.Spread.Sheets.CellTypes.HyperLink();
SortHyperlinkCellType.prototype.getHitInfo = function (x, y, cellStyle, cellRect, context) {
        var hitInfo = { x: x, y: y, row: context.row, col: context.col, cellRect: cellRect, sheetArea: context.sheetArea, sheet: context.sheet };
    if (x > cellRect.x + cellRect.width - cellRect.height) {

        hitInfo.isReservedLocation = true;

    }

    return hitInfo;

};
SortHyperlinkCellType.prototype.processMouseUp = function (hitInfo) {
    if (hitInfo.isReservedLocation) {

    var sheet = hitInfo.sheet, sheetArea = hitInfo.sheetArea,

        row = hitInfo.row, col = hitInfo.col;

    var tag = sheet.getTag(row, col, sheetArea) || {};

   
    tag.ascending = !tag.ascending;

    sheet.setTag(row, col, tag, sheetArea);
    sheet.sortRange(0, 0, -1, -1, true, [{ index: col, ascending: tag.ascending }]);

    }
};
SortHyperlinkCellType.prototype.paint = function (ctx, value, x, y, width, height, style, context) {
        GC.Spread.Sheets.CellTypes.HyperLink.prototype.paint.apply(this, arguments);

    var margin = 3;

    var gap = 1;

    var color = "red";

    var tag = context.sheet.getTag(context.row, context.col, context.sheetArea);

    ctx.save();
   
    if(!tag || tag && tag.ascending){
             
        ctx.beginPath();

        ctx.fillStyle = color;

        ctx.moveTo(x+width-height+margin,y+height/2-gap );

        ctx.lineTo(x+width-margin,y+height/2-gap);

        ctx.lineTo(x+width-height/2,y + margin);

        ctx.closePath();

        ctx.fill();

    }

    if(!tag || tag && !tag.ascending){   

        ctx.beginPath();

        ctx.fillStyle = color;

        ctx.moveTo(x+width-height+margin,y+height/2+gap);

        ctx.lineTo(x+width-margin,y+height/2+gap);

        ctx.lineTo(x+width-height/2,y+height - margin);

        ctx.closePath();

        ctx.fill();

    }

    ctx.restore();

   

};

SortHyperlinkCellType.prototype.processMouseDown = function (hitInfo) {
};
SortHyperlinkCellType.prototype.processMouseMove = function (hitInfo) {

};

SortHyperlinkCellType.prototype.processMouseEnter = function (hitInfo) {

};
SortHyperlinkCellType.prototype.processMouseLeave = function (hitInfo) {

};

之前来论坛看到这个 单列排序的,想咨询下 多列一起做为排序条件,应该怎么弄,而且,怎么恢复默认排序(这个点击正序倒序之后,无法恢复默认排序)
回复 使用道具 举报
Helen
高级会员   /  发表于:2018-6-13 10:37:32
地板
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部