Datatables學(xué)習(xí)筆記——columns.render

columns中的render屬性可以渲染(處理)數(shù)據(jù)顯示在表格中,即它可以操作從數(shù)據(jù)源讀取到的數(shù)據(jù),這個屬性非常常用,可以通過它實(shí)現(xiàn)很多開發(fā)中常用的效果环凿,比如表格第一列的checkbox,表格中頭像的圖片凸丸,最后一列添加操作按鈕等拷邢,下面會給出相應(yīng)的例子袱院。
render方法有四個參數(shù)屎慢,分別為data瞭稼、type、row腻惠、meta环肘,其中主要是使用data和row來進(jìn)行操作,data是對應(yīng)當(dāng)前cell的值集灌,row是對應(yīng)當(dāng)前行中的所有cell的值悔雹。

1. 將第一列顯示為checkbox

可以在columns屬性中實(shí)現(xiàn),也可以在columnDefs屬性中實(shí)現(xiàn)欣喧。

columns: [{
                "data": "name",
                "orderable": false,
                "width": "2%",
                "render": function(data,type,row,meta){
                    return data = '<input type="checkbox" name="'+data+'">';
                }
            },
columnDefs: [{
                //   指定第四列腌零,從0開始,0表示第一列唆阿,1表示第二列……
                "targets": 3,
                "render": function(data, type, row, meta) {
                    return '<input type="checkbox" name="checklist" value="' + row.name + '" />'
                }
            }],

用上面代碼將第一列和第四列顯示為checkbox益涧,效果如下:


將列顯示為checkbox效果
2. 在表格某列顯示圖片

顯示圖片的需求大多是用來顯示頭像,實(shí)現(xiàn)的方法也和1中一樣有兩種驯鳖,主要是render對應(yīng)函數(shù)里的實(shí)現(xiàn)不同闲询。

{
        "data": "img",
        "width": "200px",
        "title": "Avatar",
         render: function (data, type, row, meta) {                                               
             return "<img src='" + data + "' />";
              //還可以給圖片加上超鏈接
             //return "<a href='" + data + "'>" + data + "</a>";
          }
 }
3. 在最后一列添加操作按鈕

這是一個非常常見的需求,在最后一列添加一些增刪改查操作的按鈕浅辙。

{
       "data": "id",
       "orderable": false, // 禁用排序
       "defaultContent": "",
       "width": "10%",
       "render": function (data, type, row, meta) {
           return data = '<button class="btn btn-info btn-sm" data-id=' + data + '><i class="fa fa-pencil"></i>Edit</button>'
                  + '<button class="btn btn-danger btn-sm" data-id=' + data + '><i class="fa fa-trash-o"></i>Delete</button>';
                  
        }
 }

效果如下圖:


最后一列顯示按鈕
4. 字符太長截取顯示

當(dāng)某一列內(nèi)容太長時只顯示部分扭弧,超過用...表示。

columns: [{
        data: "content",
        render: function(data, type, row, meta) {
            //type 的值  dispaly sort filter
            //代表记舆,是顯示類型的時候判斷值的長度是否超過8鸽捻,如果是則截取
            //這里只處理了類型是顯示的,過濾和排序返回原始數(shù)據(jù)
            if (type === 'display') {
                if (data.length > 8) {
                    return '<span title="' + data + '">' + data.substr(0, 7) + '...</span>';
                } else {
                    return '<span title="' + data + '>' + data + '</span>';
                }
            }
            return data;
        }
    }]

還可以使用css的方法實(shí)現(xiàn)泽腮,即給當(dāng)前列添加相應(yīng)的css樣式:

/* 單元格連續(xù)純字母數(shù)字強(qiáng)制換行顯示 */
.wordwrap{
    word-wrap: break-word;
    word-break: break-all;
    overflow: hidden;
}
/* 超長文字單元格省略號顯示 */
.ellipsis{
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    -o-text-overflow: ellipsis;
}
columns: [
        {
            data: "content",
            class: "wordwrap ellipsis"
        }
    ]
5. 根據(jù)性別的不同添加相應(yīng)樣式

在用datatables做用戶信息列表時經(jīng)常需要顯示性別泊愧,可以根據(jù)性別字段來做一定的轉(zhuǎn)換,比如添加顏色樣式盛正,或者變成對應(yīng)的男生女生圖標(biāo)等删咱。

          {
                    "data" : "gender",
                    "orderable" : false, // 禁用排序
                    "defaultContent" : "",
                    "width" : "1%",
                    "class": "gender_style",//給當(dāng)前列添加樣式
                    "render": function (data, type, full, meta) {
                        if(data=="male"){
                            return data = '<i class="fa fa-male"></i>';
                        }else{
                            return data = '<i class="fa fa-female"></i>';
                        }
                    }
                }

效果如下:

性別顯示

參考資料:
http://datatables.club/reference/option/columns.render.html
http://datatables.club/manual/daily/2016/04/25/option-columns-render1.html
http://datatables.club/manual/daily/2016/04/26/option-columns-render2.html
http://datatables.club/manual/daily/2016/04/27/option-columns-render3.html
http://datatables.club/manual/daily/2016/04/28/option-columns-render4.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市豪筝,隨后出現(xiàn)的幾起案子痰滋,更是在濱河造成了極大的恐慌,老刑警劉巖续崖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敲街,死亡現(xiàn)場離奇詭異,居然都是意外死亡严望,警方通過查閱死者的電腦和手機(jī)多艇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來像吻,“玉大人峻黍,你說我怎么就攤上這事复隆。” “怎么了姆涩?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵挽拂,是天一觀的道長。 經(jīng)常有香客問我骨饿,道長亏栈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任宏赘,我火速辦了婚禮绒北,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘察署。我一直安慰自己镇饮,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布箕母。 她就那樣靜靜地躺著储藐,像睡著了一般。 火紅的嫁衣襯著肌膚如雪嘶是。 梳的紋絲不亂的頭發(fā)上钙勃,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機(jī)與錄音聂喇,去河邊找鬼辖源。 笑死,一個胖子當(dāng)著我的面吹牛希太,可吹牛的內(nèi)容都是我干的克饶。 我是一名探鬼主播,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼誊辉,長吁一口氣:“原來是場噩夢啊……” “哼矾湃!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起堕澄,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤邀跃,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蛙紫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體拍屑,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡僵驰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片星爪。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖矮男,靈堂內(nèi)的尸體忽然破棺而出室谚,到底是詐尸還是另有隱情,我是刑警寧澤秒赤,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站入篮,受9級特大地震影響陈瘦,放射性物質(zhì)發(fā)生泄漏潮售。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一酥诽、第九天 我趴在偏房一處隱蔽的房頂上張望鞍泉。 院中可真熱鬧肮帐,春花似錦、人聲如沸训枢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恒界。三九已至睦刃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間十酣,已是汗流浹背眯勾。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留婆誓,地道東北人吃环。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像洋幻,于是被迫代替她去往敵國和親郁轻。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1.安裝 需引入三個文件,即jQuery庫好唯,一個DT的核心js文件和一個DT的css文件竭沫,注意jQuery庫的引用...
    co可丁閱讀 1,864評論 0 9
  • 1. 如何開啟服務(wù)器模式 服務(wù)器模式即通過ajax通過接口從后端獲取數(shù)據(jù),也是開發(fā)中最常使用的方式骑篙。開啟服務(wù)器模式...
    co可丁閱讀 2,246評論 0 4
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color蜕提,font,text-align靶端,li...
    wzhiq896閱讀 1,753評論 0 2
  • 選擇qi:是表達(dá)式 標(biāo)簽選擇器 類選擇器 屬性選擇器 繼承屬性: color谎势,font,text-align杨名,li...
    love2013閱讀 2,314評論 0 11
  • 你是真的膚淺 看不穿誓言 總置身浪尖 一次次挑戰(zhàn) 別人無心的永遠(yuǎn) 既然選擇謊言 就不要拆穿 既然選擇再見 就不必留...
    安靜的復(fù)蘇918閱讀 158評論 0 0