lavkach3

Форк
0
/
datatable-advanced.init.js 
201 строка · 4.3 Кб
1
// 
2
//    File export                              //
3
// 
4
$("#file_export").DataTable({
5
  dom: "Bfrtip",
6
  buttons: ["copy", "csv", "excel", "pdf", "print"],
7
});
8
$(
9
  ".buttons-copy, .buttons-csv, .buttons-print, .buttons-pdf, .buttons-excel"
10
).addClass("btn btn-primary");
11

12
// 
13
//  Show / hide columns dynamically                 //
14
// 
15

16
var table = $("#show_hide_col").DataTable({
17
  scrollY: "200px",
18
  paging: false,
19
});
20

21
$("a.toggle-vis").on("click", function (e) {
22
  e.preventDefault();
23

24
  // Get the column API object
25
  var column = $("#show_hide_col")
26
    .dataTable()
27
    .api()
28
    .column($(this).attr("data-column"));
29
  // Toggle the visibility
30
  column.visible(!column.visible());
31
});
32

33
// 
34
//    Column rendering                         //
35
// 
36
$("#col_render").DataTable({
37
  columnDefs: [
38
    {
39
      // The `data` parameter refers to the data for the cell (defined by the
40
      // `data` option, which defaults to the column being worked with, in
41
      // this case `data: 0`.
42
      render: function (data, type, row) {
43
        return data + " (" + row[3] + ")";
44
      },
45
      targets: 0,
46
    },
47
    { visible: false, targets: [3] },
48
  ],
49
});
50

51
// 
52
//     Row grouping                            //
53
// 
54
var table = $("#row_group").DataTable({
55
  pageLength: 10,
56
  columnDefs: [{ visible: false, targets: 2 }],
57
  order: [[2, "asc"]],
58
  displayLength: 25,
59
  drawCallback: function (settings) {
60
    var api = this.api();
61
    var rows = api.rows({ page: "current" }).nodes();
62
    var last = null;
63

64
    api
65
      .column(2, { page: "current" })
66
      .data()
67
      .each(function (group, i) {
68
        if (last !== group) {
69
          $(rows)
70
            .eq(i)
71
            .before(
72
              '<tr class="group"><td colspan="5">' + group + "</td></tr>"
73
            );
74

75
          last = group;
76
        }
77
      });
78
  },
79
});
80

81
// 
82
// Order by the grouping
83
// 
84
$("#row_group tbody").on("click", "tr.group", function () {
85
  var currentOrder = table.order()[0];
86
  if (currentOrder[0] === 2 && currentOrder[1] === "asc") {
87
    table.order([2, "desc"]).draw();
88
  } else {
89
    table.order([2, "asc"]).draw();
90
  }
91
});
92

93
// 
94
//    Multiple table control element           //
95
// 
96
$("#multi_control").DataTable({
97
  dom: '<"top"iflp<"clear">>rt<"bottom"iflp<"clear">>',
98
});
99

100
// 
101
//    DOM/jquery events                        //
102
// 
103
var table = $("#dom_jq_event").DataTable();
104

105
$("#dom_jq_event tbody").on("click", "tr", function () {
106
  var data = table.row(this).data();
107
  alert("You clicked on " + data[0] + "'s row");
108
});
109

110
// 
111
//    Language File                            //
112
// 
113
$("#lang_file").DataTable({
114
  language: {
115
    url: "../../assets/js/datatable/German.json",
116
  },
117
});
118

119
// 
120
//    Complex headers with column visibility   //
121
// 
122

123
$("#complex_head_col").DataTable({
124
  columnDefs: [
125
    {
126
      visible: false,
127
      targets: -1,
128
    },
129
  ],
130
});
131

132
// 
133
//    Setting defaults                         //
134
// 
135
var defaults = {
136
  searching: false,
137
  ordering: false,
138
};
139

140
$("#setting_defaults").dataTable($.extend(true, {}, defaults, {}));
141

142
// 
143
//    Footer callback                          //
144
// 
145
$("#footer_callback").DataTable({
146
  footerCallback: function (row, data, start, end, display) {
147
    var api = this.api(),
148
      data;
149

150
    // Remove the formatting to get integer data for summation
151
    var intVal = function (i) {
152
      return typeof i === "string"
153
        ? i.replace(/[\$,]/g, "") * 1
154
        : typeof i === "number"
155
        ? i
156
        : 0;
157
    };
158

159
    // Total over all pages
160
    total = api
161
      .column(4)
162
      .data()
163
      .reduce(function (a, b) {
164
        return intVal(a) + intVal(b);
165
      }, 0);
166

167
    // Total over this page
168
    pageTotal = api
169
      .column(4, { page: "current" })
170
      .data()
171
      .reduce(function (a, b) {
172
        return intVal(a) + intVal(b);
173
      }, 0);
174

175
    // Update footer
176
    $(api.column(4).footer()).html(
177
      "$" + pageTotal + " ( $" + total + " total)"
178
    );
179
  },
180
});
181

182
// 
183
//    Custom toolbar elements                  //
184
// 
185

186
$("#custom_tool_ele").DataTable({
187
  dom: '<"toolbar">frtip',
188
});
189

190
$("div.toolbar").html("<b>Custom tool bar! Text/images etc.</b>");
191

192
// 
193
//    Row created callback                     //
194
// 
195
$("#row_create_call").DataTable({
196
  createdRow: function (row, data, index) {
197
    if (data[5].replace(/[\$,]/g, "") * 1 > 150000) {
198
      $("td", row).eq(5).addClass("highlight");
199
    }
200
  },
201
});
202

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.