jquery dataTables 跟jquery ui 对话框dialog的使用

首先介绍下这两个插件功能 

1.DataTables是一个jQuery的表格插件。

官方网站及其下载地址:http:/www.datatables.net

其主要特点如下:

1.自动分页处理
2.即时表格数据过滤
3.数据排序以及数据类型自动检测
4.自动处理列宽度
5.可通过CSS定制样式
6.支持隐藏列
7.易用
8.可扩展性和灵活性
9.国际化
10.动态创建表格
11.免费的

2.对话框(dialog),是jQuery UI 非常重要的一个功能。它彻底的代替了JavaScript
的alert()、prompt()等方法,也避免了新窗口或页面的繁杂冗余。

我这里直接讲下我需要实现什么样的功能,大家就知道了

对,就是一个非常简单的删除功能,然后弹出对话框,然后点击确定,执行删除。

首先来看下dataTables里面的写法

 1  $('#table').dataTable({
 2             "sDom": "t" +
 3             "<'soc-pagenagtion' ip>",
 4             oLanguage: {
 5                 "sProcessing": "处理中...",
 6                 "sLengthMenu": "显示 _MENU_ 项结果",
 7                 "sZeroRecords": "没有匹配结果",
 8                 "sInfo": "显示第 _START_ 至 _END_ 项结果,共 _TOTAL_ 项",
 9                 "sInfoEmpty": "显示第 0 至 0 项结果,共 0 项",
10                 "sInfoFiltered": "(由 _MAX_ 项结果过滤)",
11                 "sInfoPostFix": "",
12                 "sSearch": "搜索:",
13                 "sUrl": "",
14                 "sEmptyTable": "表中数据为空",
15                 "sLoadingRecords": "载入中...",
16                 "sInfoThousands": ",",
17                 "oPaginate": {
18                     "sFirst": "首页",
19                     "sPrevious": "上页",
20                     "sNext": "下页",
21                     "sLast": "末页"
22                 },
23                 "oAria": {
24                     "sSortAscending": ": 以升序排列此列",
25                     "sSortDescending": ": 以降序排列此列"
26                 }
27             },
28             "autoWidth": false,
29             "processing": true,
30             "serverSide": true,
31             "searching": false,
32             ordering: false,
33             "info": true,
34             ajax: function (param, callback, settings) {
35                 var service = $("#service").val();
36                 var params = {
37                    //参数集合
38                 }
39                 $.ajax({
40                         type: "GET",
41                     url: "",
42                     dataType: "json",
43                     data: params,
44                     contentType: "application/x-www-form-urlencoded; charset=utf-8",
45                     success: function (d) {
46                         if(d!==null){
47                             callback({
48                              //返回的查询结果
49     
50                                 recordsTotal: d.pageUtil.total,
51                                 recordsFiltered: d.pageUtil.total,
52                                 data: d.pageUtil.list
53                             });
54                         }
55 
56                     }
57                 });
58             },
59             "columns": [
60                 {"data": "code"},
61                 {"data": "name"},
62              //表格所对应的字段
63             ],
64             "columnDefs": [
65                 {
66                     "render": function (data, type, row) {
67                     //这里是替换显示  比如查询结果为1 你可以显示其他的值
68                         if (row.o_status == '0') {
69                             return [
70                                 row.o_status = '停用'
71                             ].join('');
72                         } else if (row.o_status == '1') {
73                             return [
74                                 row.o_status = '启用'
75                             ].join('');
76                         } else {
77                             return [
78                                 row.o_status = ''
79                             ].join('');
80                         }
81                     },
82                     "targets": 6
83                 },
84 
85                 {
86                  //这一步是追加删除链接
87                     "render": function (data, type, row) {
88                       
89                             return [
90                                 "<a href=''  id='dialog_link'>删除</a>"
91                             ].join('');
92                 
93                     },
94                     "targets": 8
95                 }
96             ]
97         });                            
View Code

接着就是写dailog的配置跟样式

html代码

    <div id="dialog-message"  title="提示">
            <p>
                <span class="ui-icon ui-icon-circle-check" style="float:left; margin:0 7px 50px 0;"></span>
                是否删除该条数据?
            </p>
        </div>

js代码

//        jquery-ui 对话框设置
        $( "#dialog-message" ).dialog({
            autoOpen : false,
            width : 400,
            resizable : false,
            modal : true,
            title:"",
            buttons:   [{
                html : "确认",
                "class" : "btn btn_b",
                click : function() {
                   var code= window.parent.$("#dialog-message").data("code");//这里是获取传入的参数值
                  location.href=";
                    $(this).dialog("close");
                }
            }, {
                html : "取消",
                "class" : "btn btn_o",
                click : function() {
                    $(this).dialog("close");
                }
            }]
        });

接着怎么就是传参数进入对话框

首先定义点击事件弹出对话框


/**
 * 弹出对话框并传递参数
 */
$('#table tbody').on( 'click', '#dialog_link', function () {
    var table = $('#table').DataTable();
    var data = table.row( $(this).parents('tr') ).data();//这里是获取当前你点击的那行的数据
    $('#dialog-message').data("code", data.code).dialog('open');//然后传入对话框,打开对话框
    return false;
});

我之前一直用$("#dialog_link").click(function(){

});不知道为什么一直打不开对话框

注意对话框设置一定要放到上面这个代码的上面

 
posted @ 2016-09-01 18:01  也许明天1  阅读(1842)  评论(0编辑  收藏  举报