如何在数据表列中仅显示前30个字符,然后再显示更多按钮?

时间:2016-04-29 12:04:32

标签: javascript jquery datatable

我有这样的json

enter image description here

因此我的数据表看起来像这样

enter image description here

我想只显示25个字符而不是阅读更多按钮旁边显示整个描述,但我不知道该怎么做,

这是我的数据表实现

$('#subsocieties-table').DataTable({
            retrieve: true,
            ajax: {
                url: '/FrontEnd/resources/getsubsocieties?row='+row,
                dataSrc: '' 
            },

            "columns": [
                        { "data": "societyBlockId" },
                        { "data": "name" },
                        { "data": "address" },
                        { "data": "description" }, // here in description i display now how to dispaly first 30 characters and than place read ore button in it ??
                        { "data": "launchDate" },
                        { "data": "blockByLawsFile" },
                        { "data": "blockFile" },
                        { "data": "type.name" },
                        { "data": "status.name" },

                              {
                                  "data": null,
                                  "className": "dt-center",
                                  searchable: false,

                                  orderable : false,
                                  render : function ( data, type, row, meta ) {
                                      return '<a href="javascript:ShowBlockPPlanDetails('+row.id+', '+meta.row+')">Show Details</a>';
                          } },

                      {
                          "data": null,
                          "className": "dt-center",
                          searchable: false,

                          orderable : false,
                          render : function ( data, type, row, meta ) {
                              return '<a href="javascript:ShowBlockFeaturesDetails('+row.id+', '+meta.row+')">Show Details</a>';
                  } },
                        {
                          "data": null,
                          "className": "dt-center",
                          searchable: false,
                          click: false, 
                          orderable : false,
                          render : function ( data, type, row, meta ) {
                          return '<a href="javascript:editSubSocieties('+row.id+', '+meta.row+')">Edit</a> / <a href="javascript:removeSubSocieties('+row.id+', '+meta.row+')">Delete</a>';
                          } }
                       ] ,
                       "columnDefs": [
                                       {
                                           "targets": [ 0 ],
                                           "visible": false,
                                           "searchable": false
                                       }
                                       ,
                                  {
                                      "targets":5,
                                      "data": "download_link",
                                      "render": function ( data, type, row, meta ) {

                                     if(data != null)
                                         {
                                            var ext = data.split('.').pop();
                                        return '<a href="download.do?filename='+row.societyBlockId+'_blockbylawfile.'+ext+'">'+data+'</a>';
                                         }
                                     else
                                         {
                                            ext = data;
                                            return "";
                                         }


                                         }

                                    },
                                    {
                                        "targets":6,
                                        "data": "download_link",
                                        "render": function ( data, type, row, meta ) {
                                         if(data != null)
                                     {
                                        var ext1 = data.split('.').pop();
                                    return '<a href="download.do?filename='+row.societyBlockId+'_blockfile.'+ext1+'">'+data+'</a>';
                                     }
                                 else
                                     {
                                        ext1 = data;
                                    return "";
                                     }

                                        }
                                    }
                                 ]
                });

请让我知道怎么做,谢谢!

2 个答案:

答案 0 :(得分:1)

你有一个插件,如:

  • dataTables.TruncateCells - 将列中的每个单元格截断为一定数量的字符,用椭圆替换最后的3,并将完整的预截断文本放在单元格的标题中。

答案 1 :(得分:-1)

            <script type="text/javascript">
            $('#example').dataTable({
            "data": responseObj,
            "columns": [
                            {
                                "data": "DT_RowId", "name": "DT_RowId", "orderable": false, "autoWidth": true, "render": function (data, type, row, meta) {
                                    return "";
                                }
                            },
                            {
                                "data": "Description", "name": "Description", "autoWidth": true , "render": function (data, type, row, meta) {
                                   return fn(data, 100);

                              }
                            },

                        ]
                         function fn(Description, count) { return Description.slice(0, count) + (Description.length > count ? "..." : ""); }
            });
            </script>