将列数据设为超链接(dataTable JQUERY)

时间:2015-05-27 17:27:07

标签: jquery datatables datatables-1.10

我正在尝试将列作为带有数据表的超链接,但没有成功。

function successCallback(responseObj){

  $(document).ready(function() {
         $('#example').dataTable( {
        "data":responseObj ,
        "bDestroy": true,
        "deferRender": true ,
        "columns": [
                    { "data": "infomation" },
                    { "data": "weblink" },
                ]
  } );

  } );

}

我需要weblink来显示链接并成为该列中的超链接,以便用户可以单击并重定向到另一个页面。我查看render,但链接上的信息较少,我无法成功。

我也调查了这个example,但它没有用处。

3 个答案:

答案 0 :(得分:45)

使用columns.render API方法为单元格动态生成内容。

$('#example').dataTable({
   "data": responseObj,
   "columns": [
      { "data": "information" }, 
      { 
         "data": "weblink",
         "render": function(data, type, row, meta){
            if(type === 'display'){
                data = '<a href="' + data + '">' + data + '</a>';
            }

            return data;
         }
      } 
   ]
});

请参阅this example以获取代码和演示。

答案 1 :(得分:7)

    public static void SendMail(string from, string to, string subject, string message,  bool isHTML = true)
    {
        if (!String.IsNullOrEmpty(to) && ConfigurationManager.AppSettings["no_mail"] == null)
        {
            MailMessage mailMessage = new MailMessage(from,
                                                      to,
                                                      subject,
                                                      message);
            string bccAddr = ConfigurationManager.AppSettings["managementMailAddress"];
            if (!String.IsNullOrEmpty(bccAddr))
                mailMessage.Bcc.Add(bccAddr);
            bccAddr = ConfigurationManager.AppSettings["debugMailAddress"];
            if (!String.IsNullOrEmpty(bccAddr))
                mailMessage.Bcc.Add(bccAddr);
            if (isHTML)
                mailMessage.IsBodyHtml = true;
            //mailMessage.BodyEncoding = System.Text.Encoding.UTF8; // avoid 3D?
            SmtpClient smtpClient = new SmtpClient(ConfigurationManager.AppSettings["mailHost"]);

            smtpClient.Send(mailMessage);

        }
    }

来自documentation。这对我来说是非常清楚和直截了当的,你有什么不明白的?你看到了什么错误?

有关更完整的示例,请参阅here

答案 2 :(得分:5)

如果您要根据其他列数据添加链接,可以使用以下方法。

$('#example').dataTable({
   "data": responseObj,
   "columns": [
      { "data": "information" }, 
      { 
         "data": "weblink",
         "render": function(data, type, row, meta){
            if(type === 'display'){
                data = '<a href="' + row.myid + '">' + data + '</a>';
            }
            return data;
         }
      } 
   ]
});

我刚刚更改了渲染功能data仅指当前列数据,而row对象指整行数据。因此,我们可以使用它来获取该行的任何其他数据。