Handsontable添加超链接

  本文在上文的基础上,返回的数据中多了一个link超链接跳转的字段,,需要在Handsontable中显示超链接。

  

<!DOCTYPE html>
<html>
<head>
    <title>handsontable demo</title>
    <meta charset="utf-8">
    <link rel="stylesheet" href="handsontable/htstyle.css">
    <link rel="stylesheet" href="handsontable/htstyle-custom.css">
    <script src="handsontable/jquery-1.12.1.js"></script>
    <script src="handsontable/handsontable.full.js"></script>
</head>
<body>
    <div id="example"></div>

    <script>
        var data = [
            { riqi: ‘2017-01‘, address: ‘北京‘, goods: ‘冰箱‘, price: ‘3399‘, sales: 530, del: ‘‘, link: "<a href=‘http://www.baidu.com‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-01‘, address: ‘天津‘, goods: ‘空调‘, price: ‘4299‘, sales: 522, del: ‘‘, link: "<a href=‘handsontable_1.htm‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-01‘, address: ‘上海‘, goods: ‘洗衣机‘, price: ‘1299‘, sales: 544, del: ‘‘, link: "<a href=‘http://www.baidu.com‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-01‘, address: ‘广州‘, goods: ‘彩电‘, price: ‘4599‘, sales: 562, del: ‘‘, link: "<a href=‘handsontable_1.htm‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-01‘, address: ‘深圳‘, goods: ‘热水器‘, price: ‘1099‘, sales: 430, del: ‘‘, link: "<a href=‘http://www.baidu.com‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-02‘, address: ‘重庆‘, goods: ‘笔记本电脑‘, price: ‘4999‘, sales: 666, del: ‘‘, link: "<a href=‘handsontable_1.htm‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-02‘, address: ‘厦门‘, goods: ‘油烟机‘, price: ‘2899‘, sales: 438, del: ‘‘, link: "<a href=‘http://www.baidu.com‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-02‘, address: ‘青岛‘, goods: ‘饮水机‘, price: ‘899‘, sales: 620, del: ‘‘, link: "<a href=‘handsontable_1.htm‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" },
            { riqi: ‘2017-02‘, address: ‘大连‘, goods: ‘手机‘, price: ‘1999‘, sales: 500, del: ‘‘, link: "<a href=‘http://www.baidu.com‘ target=‘_blank‘ style=‘cursor:pointer;‘>链接</a>" }
        ];

        function negativeValueRenderer(instance, td, row, col, prop, value, cellProperties) {
            Handsontable.renderers.TextRenderer.apply(this, arguments);
            if (prop == ‘address‘) {
                td.style.color = ‘#32CD32‘;
            }
            else if (prop == ‘price‘) {
                //格式化价格数据
                td.innerText = value != null ? numbro(value).format(‘0.00‘) : "";
            }
            else if (prop == ‘sales‘) {
                //右对齐
                td.style.textAlign = ‘right‘;
                td.innerText = value != null ? numbro(value).format(‘0,0.00‘) : "";
            }
            else if (prop == ‘del‘) {
                //添加自定义的图片,并给图片的chick添加事件
                var escaped = Handsontable.helper.stringify(value),
                  imgdel;

                imgdel = document.createElement(‘IMG‘);
                imgdel.src = "handsontable/remove.png";
                imgdel.width = 20;
                imgdel.name = escaped;
                imgdel.style = ‘cursor:pointer;‘;//鼠标移上去变手型
                Handsontable.dom.addEvent(imgdel, ‘click‘, function (event) {
                    hot.alter("remove_row", row);//删除当前行
                });

                Handsontable.dom.empty(td);
                td.appendChild(imgdel);
                td.style.textAlign = ‘center‘;
                return td;
            }
            else if (prop == ‘link‘) {
                td.innerHTML = value;
            }
        }
        Handsontable.renderers.registerRenderer(‘negativeValueRenderer‘, negativeValueRenderer);

        var hot = new Handsontable(document.getElementById(‘example‘), {
            data: data,
            colHeaders: [‘操作‘, ‘日期‘, ‘地点‘, ‘商品‘, ‘单价‘, ‘销量‘,‘跳转‘], // 使用自定义列头
            rowHeaders: true,
            colWidths: 150, // 设置所有列宽为150像素
            filters: true,
            columnSorting: true,
            sortIndicator: true,
            autoColumnSize: true,
            manualColumnResize: true,
            undo: true,
            redo: true,
            wordWrap: true,
            copyable: true,
            mergeCells: false,
            manualRowResize: true,
            manualRowMove: true,
            manualColumnMove: false,
            renderAllRows: true,
            allowInsertRow: true,
            allowInsertColumn: false,
            fixedColumnsLeft: 1,
            columns: [{
                data: ‘del‘,
                type: ‘text‘
            }, {
                data: ‘riqi‘,
                type: ‘date‘,
                dateFormat: ‘YYYY-MM-DD‘
            }, {
                data: ‘address‘,
                type: ‘text‘
            }, {
                data: ‘goods‘,
                type: ‘text‘
            }, {
                data: ‘price‘,
                type: ‘numeric‘
            }, {
                data: ‘sales‘,
                type: ‘numeric‘
            }, {
                data: ‘link‘,
                type: ‘text‘
            }],
            contextMenu: [‘row_above‘, ‘row_below‘, ‘---------‘, ‘remove_row‘, ‘---------‘, ‘undo‘, ‘redo‘, ‘---------‘, ‘make_read_only‘, ‘---------‘, ‘alignment‘],
            dropdownMenu: [‘filter_by_condition‘, ‘filter_by_value‘, ‘filter_action_bar‘],
            cells: function (row, col, prop) {
                var cellProperties = {};
                cellProperties.renderer = "negativeValueRenderer";
                return cellProperties;
            },
        });
    </script>
</body>
</html>

  需要注意的是,不管link中的值是前台拼接还是后台处理好返回的,只是一个超链接格式的字符串,如果没有td.innerHTML = 链接字符串;则显示的仍然是一个字符串而不是超链接。

By QJL

时间: 2024-11-10 01:13:54

Handsontable添加超链接的相关文章

C#/VB.NET对EXCEL图片添加超链接

在日常工作中,在编辑文档时,为了方便自己或者Boss能够实时查看到需要的网页或者文档时,需要对在Excel中输入的相关文字进行超链接,那么对于一些在Excel中插入的图片我们该怎么实现超链接呢,下面给大家分享一个方法: 首先简单了解一下一款叫Spire.XLS的组件,这个组件是由E-iceblue公司发布的一款独立的Excel组件,它的最大优点在于不依赖Microsoft Excel,可以用在各种 .NET 框架中,包括 ASP.NET 和 Windows Forms 等相关的 .NET 应用程

svg 添加超链接

<svg>    <a xlink:href="http://www.w3.org//Graphics//SVG//Overview.htm8">        <rect x="10" y="10" width="100" height="30" rx="10" ry="10"              style="fill

C#在excel中添加超链接

1.新建一个项目 2.给项目添加引用:Microsoft Excel 12.0 Object Library (2007版本) using Excel = Microsoft.Office.Interop.Excel; 3.对excel的简单操作:如下代码“添加超链接”等. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Excel = Microsoft.Of

TextView 中添加超链接

在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现 代码如下: 第一种  public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout la

微信文章中添加超链接的实现

在日常中常常有需要在文章中添加超链接的情况,例如,跳转到历史消息 总结一下:能发超链接的微信图文有3种: 1.开通支付功能的认证服务号 2.具有原创保护能力的媒体或自媒体订阅号 3.与腾讯有一些特殊关系的订阅号 开战: 1. 开通微信支付的服务号 通过微信认证,并且开通了微信支付功能的服务号在编辑素材时,可以在内容框中添加产品图片或者文字的超链接. 打开图文素材编辑框,在工具栏上方就有"超链接"的按钮 既可以自定义链接,也可以从已发送的图文消息中选择. 选择自定义链接的方式,填写要跳转

textView 添加超链接(两种实现方式)

在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接,下面为大家介绍下这两种方法的实现 在textView添加超链接,有两种方式,第一种通过HTML格式化你的网址,一种是设置autolink,让系统自动识别超链接. 代码如下: 第一种 复制代码代码如下: public class MainActivity extends Activity { @Override protected void onCreate(Bundle

如何在CAD中添加超链接

大家在日常的CAD绘图的工作中,不知道有没有遇到过这样的问题,就是要给CAD图纸中添加一个超链接,为了方便在查看的过程中直接点击链接就可以直接跳转到另外一个界面当中去,那如何在CAD中添加超链接呢?具体要怎么来操作?今天小编就来和大家分享一下,希望你们能够喜欢和帮助到你们. 第一步:首先, 在浏览器的搜索框中输入迅捷CAD编辑器,在搜索的结果中点击进入到官网,然后再根据系统提示的安装步骤下载安装CAD编辑器到电脑中. 第二步:将CAD编辑器安装完成之后,移动鼠标到该软件所在的位置,然后双击鼠标左

使用博客园写随笔时如何添加超链接

为 PyTorch官网 添加超链接 https://pytorch.org/ PyTorch官网,选中PyTorch官网添加链接, 常规属性,目标 选择「在目前窗口打开超链接」,其他可不填 弹窗属性,勾选 JavaScript 弹出,弹窗URL地址输入 https://pytorch.org/ 高级属性,样式 输入:cursor:pointer; 最后点击插入即可. 原文地址:https://www.cnblogs.com/booturbo/p/11837948.html

利用VBA批量给Excel添加超链接

主要思想是先给单元格设置名称,再设置超链接 代码如下: Sub creat_link() Dim Source As String Source = "t1" Dim Target As String Target = "t2" Dim i As Integer i = 1 Dim j As Integer j = 1 Do While i < 10 Dim Svalue As String Svalue = Sheets(Source).Cells(i, 1