<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <script src="https://kit.fontawesome.com/f7473a804c.js" crossorigin="anonymous"></script>
    <script type="text/javascript" src="https://cdn.jsdelivr.net/gh/ashl1/datatables-rowsgroup@master/dataTables.rowsGroup.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div id="container">
    <h2 id="title">News</h2>
    <div class="card border-light bg-light">
        <table class="table table-hover hover" id="newsTable">
            <thead>
                <tr>
                    <th>ID</th>
                    <th>News Type</th>
                    <th>Visibility</th>
                    <th>Language</th>
                    <th>Title</th>
                    <th>Summary</th>
                    <th></th>
                    <th></th>
                </tr>
            </thead>
            <tbody id="dataTableBody"></tbody>
        </table>
    </div>
</div>
  </body>
</html>
 
body {
  font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
.lang, .icon {
    text-align: center;
}
.visible {
    color: #00b831;
    font-size: 12px;
}
.nonvisible {
    color: #ed0000;
    font-size: 12px;
}
 
$(function () {
  var data = [{"id":3,"news_type":"All Information","visibility":1,"thumbnail":null,"banner":null,"published_date":"23/3/2019","last_modified":"12/5/2020","lang":"ENG","lang_id":1,"title":"Sun","summary":"Pencil","content":"Words"},{"id":3,"news_type":"All Information","visibility":1,"thumbnail":null,"banner":null,"published_date":"23/3/2019","last_modified":"12/5/2020","lang":"CHI","lang_id":2,"title":"Fun","summary":"Pen","content":"Hi"},{"id":4,"news_type":"All Information","visibility":1,"thumbnail":null,"banner":null,"published_date":"23/3/2019","last_modified":"12/5/2020","lang":"ENG","lang_id":1,"title":"Hello","summary":"Smile","content":"Want"},{"id":4,"news_type":"All Information","visibility":1,"thumbnail":null,"banner":null,"published_date":"23/3/2019","last_modified":"12/5/2020","lang":"CHI","lang_id":2,"title":"Nice","summary":"Cold","content":"Warm"},{"id":9,"news_type":"Market Research","visibility":1,"thumbnail":"C:\\Documents\\Newsletters\\Space.png","banner":"C:\\Documents\\Newsletters\\Space.png","published_date":"28/5/2020","last_modified":"28/5/2020","lang":"ENG","lang_id":1,"title":"Rocket","summary":"Space","content":"Stars"},{"id":10,"news_type":"Market Research","visibility":1,"thumbnail":"C:\\Documents\\Newsletters\\Space.png","banner":"C:\\Documents\\Newsletters\\Space.png","published_date":"28/5/2020","last_modified":"28/5/2020","lang":"ENG","lang_id":1,"title":"Eyes","summary":"Space","content":"Stars"},{"id":10,"news_type":"Market Research","visibility":1,"thumbnail":"C:\\Documents\\Newsletters\\Space.png","banner":"C:\\Documents\\Newsletters\\Space.png","published_date":"28/5/2020","last_modified":"28/5/2020","lang":"CHI","lang_id":2,"title":"示范","summary":"苹果","content":"电脑"},{"id":12,"news_type":"Market Research","visibility":1,"thumbnail":"C:\\Documents\\Newsletters\\Space.png","banner":"C:\\Documents\\Newsletters\\Space.png","published_date":"28/5/2020","last_modified":"28/5/2020","lang":"ENG","lang_id":1,"title":"Astro","summary":"Space","content":"Stars"},{"id":13,"news_type":"Market Research","visibility":1,"thumbnail":"mountains_clouds_forest_lake_trees_camping_3419x1843.jpg","banner":"mountains_clouds_forest_lake_trees_camping_3419x1843.jpg","published_date":"1/6/2020","last_modified":"1/6/2020","lang":"ENG","lang_id":1,"title":"Campaign","summary":"Ship","content":"Work"},{"id":22,"news_type":"Financial Report","visibility":1,"thumbnail":"macOS_Catalina_Dark.jpg","banner":"macOS_Catalina_Dark.jpg","published_date":"2/6/2020","last_modified":"2/6/2020","lang":"CHI","lang_id":2,"title":"Night","summary":"Poland","content":"View"},{"id":26,"news_type":"Shopping Guide","visibility":1,"thumbnail":"","banner":"","published_date":"8/6/2020","last_modified":"8/6/2020","lang":"CHI","lang_id":2,"title":"z","summary":"z","content":"z"},{"id":27,"news_type":"Shopping Guide","visibility":1,"thumbnail":"","banner":"","published_date":"8/6/2020","last_modified":"8/6/2020","lang":"CHI","lang_id":2,"title":"2020年全球最佳留学国家排名榜-加拿大名列第一!","summary":"几天前,全球教育网发布了2020年全球最佳留学国家排行榜TOP10。\n这份排名更多的专注于学生留学的体验感,如果你更多的想享受你的留学生活,不妨来看看这个排行榜。","content":"加拿大雄踞榜首,澳大利亚位居第二位,德国排名第三,而美国和英国分别位居第五位和第八位。\n\nTop1 加拿大\n\n加拿大的教育体系是世界顶尖的,这毋庸置疑。加拿大属于北美教育体系,这种体系被全世界范围内广泛认可。它既兼具着美国体系的灵活创新,又不乏英联邦教育体制的严谨!\n\n加拿大的大学90%都是公立制的,比如说著名的多伦多大学,英属哥伦比亚大学,皇后大学,滑铁卢大学等等,都是公立大学!\n\nTop2 澳大利亚\n\n澳大利亚在获得高质量教育方面排名第三,在墨尔本,悉尼和布里斯班等城市拥有许多顶尖大学例如悉尼大学、墨尔本大学等。\n\n此外澳大利亚在结交新朋友方面的能力也排名第三,在个人发展方面排名第七,这证明了澳大利亚所提供的不仅仅是优质的教育。\n\nTop3 德国\n\n德国是世界上第三大留学地带,是欧洲留学的热门选择。德国在获得高质量教育方面排名第一,无论你是对慕尼黑,柏林或法兰克福等城市的城市氛围感兴趣,还是对马尔堡和弗莱堡童话般的小镇感兴趣,都可以获得世界一流的教育!\n\nTop4 瑞士\n\n在瑞士,生活质量很高,教育质量也很高。尽管瑞士人以其巧克力,奶酪,手表和军刀而享誉国际,但瑞士的大学在教育质量上也名列前茅。\n\n瑞士是一个美丽的国家,拥有壮丽的景色和世界一流的城市,也被认为是世界上最安全的国家之一,因此学生们可以放心探索。\n\nTop5 美国\n\n对于许多想出国旅行的学生来说,美国可谓提供了无尽的机会。这个广阔的国家横跨大西洋和太平洋,为每个州提供了独特的体验。并且美国在获得更高质量的教学,文化和生活方式方面名列世界第五!\n\nTop6 瑞典\n\n瑞典有斯德哥尔摩大学、乌普萨拉大学及隆德大学等30多所学校可供留学生选择。在“实现我的职业目标\"这一指标排名中,瑞典位居世界第一。得益于瑞典迅速成长的初创企业及该国国民很高的英语水平,在瑞典留学的国际留学生在毕业后会有很多发展机会。\n\nTop7 荷兰\n\n如果舒适的咖啡馆、广阔的郁金香田野和运河旁步道引起了大家的兴趣,那么荷兰应该是大家的留学目的地!荷兰的大学以其很高的英语水平而闻名,会提供许多英语课程,因此国际留学生可以找到适合自己的课程。并且,荷兰语也被认为是最容易学习的语言之一!\n\nTop8 英国\n\n从伦敦繁华的城市环境到爱丁堡的中世纪街道,留学生们一定都会爱上英国。由于拥有牛津大学和剑桥大学等世界著名优质大学,英国在“获得更高水平的教学\"这一因素排名上位居第二。"},{"id":28,"news_type":"Breaking News","visibility":0,"thumbnail":"","banner":"","published_date":"10/6/2020","last_modified":"10/6/2020","lang":"ENG","lang_id":1,"title":"Nod","summary":"Break","content":"Here"}];
            
  var table = $('#newsTable').DataTable({
              
                dom: 'Bfrtip',
                buttons: [
                    {
                        text: 'Reset order',
                        action: function (e, dt, node, config) {
                            $('#newsTable').dataTable().fnSortNeutral();
                        }
                    }
                ],
    data: data,
                columns: [
                    {
                        "data": "id",
                        "name": "recId"
                    },
                    {
                        "data": "news_type",
                        "name": "type"
                    },
                    {
                        "data": "visibility",
                        "name": "vis",
                        "render": function (data, type, row) {
                            //console.log(data);
                            var text = "";
                            if (data == "1") {
                                    text = "<i class='fa fa-circle visible'></i>";
                                } else {
                                    text = "<i class='fa fa-circle nonvisible'></i>";
                                }
                            data = text;
                            return data;
                        },
                    },
                    { "data": "lang" },
                    { "data": "title" },
                    { "data": "summary" },
                    {
                        "data": null,
                        "render": function (data, type, row) {
                            return '<button type="button" onclick="onEditButtonClick(event)" class="btn btn-md btn-primary" rid="` + data.id + `" lang_id="` + data.lang_id + `"><i class="fa fa-edit"style="pointer-events:none"></i> Edit</button>';
                        }
                    },
                    {
                        "data": null,
                        "render": function (data, type, row) {
                            return '<button type="button" onclick="onDeleteButtonClick(event)" class="btn btn-md btn-danger" rid="` + data.id + `" lang_id="` + data.lang_id + `"><i class="fa fa-trash" style="pointer-events:none"></i> Delete</button>';
                        }
                    }
                ],
                rowsGroup: [// Always the array (!) of the column-selectors in specified order to which rows groupping is applied
                    // (column-selector could be any of specified in https://datatables.net/reference/type/column-selector)
                    'recId:name',
                    'type:name',
                    'vis:name'
                ],
                columnDefs: [
                    { "orderable": false, "targets": [0, 6, 7] },
                    { "className": "dt-center", "targets": [2, 3] }
                    //,{ "visible": false, "targets": 1 }
                ],
                order: [[0, 'asc']]
                
            });  
  
        $.ajax({
          data: data,
                dataType: 'json',
                success: function (json) {
                    table.rows.add(json).order.neutral().draw();
                }
            });
  
            table.on('order.dt search.dt', function () {
                var counter = 1;
                var index = 0;
                sortedNews = table.rows({ filter: 'applied' }).data();
                table.column(0, { search: 'applied', order: 'applied' }).nodes().each(function (cell, i) {
                    
                    if (index < sortedNews.length - 1) {
                        if (sortedNews[index].id != sortedNews[index + 1].id) {
                            cell.innerHTML = counter;
                            counter += 1;
                        }
                        else {
                            cell.innerHTML = counter;
                        }
                        index++;
                    } else if (index == sortedNews.length - 1) {
                        cell.innerHTML = counter;
                    }
                });
            }).draw();
            
        });
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers