-
Notifications
You must be signed in to change notification settings - Fork 10
4.MeTable configuration
| Configuration name | Types of | Defaults | Description |
|---|---|---|---|
| title | string | Define the title | |
| pk | string | id | Primary key name, bulk delete is passed to the background service |
| bCheckbox | boolean | true | Whether to open the multiple selection bar |
| params | object | null | Requests with parameters, will be passed to the back end at the time of the query |
| Configuration name | Types of | Defaults | Description |
|---|---|---|---|
| urlPrefix | string | All requested address prefixes | |
| urlSuffix | string | All request address suffixes | |
| url | object | All operations corresponding to the address | |
| url.search | string | search | Search data address |
| url.create | string | create | Create data address |
| url.update | string | update | Modify data address |
| url.delete | string | delete | Delete data address |
| url.export | string | export | Export data address |
| url.upload | string | upload | Upload file address |
| url.editable | string | editable | Inline address modification |
| url.deleteAll | string | delete-all | Bulk delete address |
Configuration examples and descriptions (configurations that perform the current override defaults):
var m = meTables({
urlPrefix: "/admin/",
urlSuffix: ".html",
url: {
search: "me-search"
},
...
}); The above configuration generates the search data and modified addresses as follows:
search: localhost/admin/me-search.html
update: localhost/admin/update.html
Address generation rules:urlPrefix + url.action + urlSuffix
| Configuration name | Types of | Defaults | Description |
|---|---|---|---|
| buttonSelector | string | #me-table-buttons | Jquery selector, the button will be placed in that container |
| buttonType | string | append | How to add to a container |
| buttons.create.bShow | boolean | true | Add button is displayed |
| buttons.create.icon | string | ace-icon fa fa-plus-circle blue | Add a small icon used by the button |
| buttons.create.className | string | btn btn-white btn-primary btn-bold | Add the class used by the button |
There are 5 default button groups, which are:
- create: Create data
- updateAll: Select modify data
- deleteAl: Select delete data
- refresh: Refresh table data
- export: export data
Each button has three attribute configurations: bShow, icon, className
If you do not need these buttons, you can set the button bShow to false, for example:
var m = meTables({
buttons: {
create: {
bShow: false
},
updateAll: {
bShow: false
}
},
...
});If you need to add a custom button, you can add your own button in the buttons, for example:
var m = meTables({
buttons: {
customize: {
bShow: true,
icon: "ace-icon fa fa-plus-circle yellow",
className: "btn btn-white btn-primary btn-bold"
}
},
...
});
// However, it is not enough to do the above configuration, but also need to add button click processing event, the name and button name consistent
m.fn.extend({
customize: function () {
alert("My custom button");
}
});| Configuration name | Types of | Defaults | Description |
|---|---|---|---|
| operations.bOpen | boolean | true | Whether to open |
| operations.width | string | 120px | Set the width of the column |
| operations.buttons.see.bShow | boolean | true | Whether to show |
| operations.buttons.see.title | string | Button text | |
| operations.buttons.see.button-title | string | Button text | |
| operations.buttons.see.className | string | btn-success | |
| operations.buttons.see.cClass | string | me-table-detail | |
| operations.buttons.see.icon | string | fa-search-plus | |
| operations.buttons.see.sClass | string | blue |
There are 3 default button groups, which are:
- see: see details
- update: change the data
- delete: delete data
Each button has three attribute configurations: bShow, className, title, button-title, cClass, icon, sClass
If you need to add a custom button, you can add your own button in the buttons, for example:
var m = meTables({
buttons: {
operations: {
buttons: {
// Add custom button
other: {
bShow: true,
title: "编辑权限",
"button-title": "编辑权限",
className: "btn-warning",
cClass: "role-edit",
icon: "fa-pencil-square-o",
sClass: "yellow"
},
}
},
},
...
});
// Corresponding to the button's processing event, the button configured cClass is the monitor object selector
$(document).on('click', '.role-edit', function () {
// Fixed writing to get the data for clicking this row
var data = m.table.data()[$(this).attr('table-data')];
if (data) {
alert("My custom button");
}
});| Configuration name | Types of | Defaults | Description |
|---|---|---|---|
| table | object | Configuration of jquery.dataTables.js |
Introduces the configuration of the aoColumns table column,more
| Configuration name | Types of | Description |
|---|---|---|
| title | string | The name of the column |
| data | string | Column data field |
| render | function | Rendering functionmore description |
| createdCell | function | Line creation processing functionmore description |
Configuration example:
var m = meTables({
table: {
aoColumns: [
{
title: "id",
data: "id",
render: function (data) {
return data === 1 ? "yes" : "no";
}
},
{
title: "name",
data: "name",
createdCell: function (td, data) {
$(td).html(data === 1 ? "username": "name");
}
}
],
},
...
});| Configuration name | Types of | Defaults | Description |
|---|---|---|---|
| bHide | boolean | false | Hide and divert |
| isHide | boolean | false | Hide and divert(bHide Alias) |
| bExport | boolean | false | Export diverted |
| isExport | boolean | false | Export diverted(bExport Alias) |
| bViews | boolean | true | Details show this line |
| defaultOrder | string | null | Default sorting method(asc or desc) |
| search | object | undefined | Search processing configuration |
| edit | object | undefined | Edit processing configuration |
| value | object | undefined | Provide search and edit support data |
Configuration example:
var m = meTables({
table: {
aoColumns: [
{
title: "id",
data: "id",
render: function (data) {
return data === 1 ? "yes" : "no";
},
defaultOrder: "desc",
search: {type: "text"},
edit: {type: "hidden"}
},
{
title: "name",
data: "name",
createdCell: function (td, data) {
$(td).html(data === 1 ? "username": "name");
},
/**
* This configuration will generate a drop-down box
* <select name="username" required=true number=true>
* <option value="1">123</option>
* <option value="2">456</option>
* </select>
*/
value: {"1": "123", "2": "456"},
edit: {type: "select", required: true, number: true}
}
],
},
...
});- text
- select
You can also customize:
meTables.extend({
/**
* 定义搜索表达(函数后缀名SearchCreate)
* 使用配置 search: {"type": "email", "id": "search-email"}
* search 里面配置的信息都通过 params 传递给函数
*/
"emailSearchCreate": function(params) {
return '<input type="text" name="' + params.name +'">';
}
});- text
- select
- radio
- checkbox
- hidden
- file
- textarea
- password
You can also customize:
meTables.extend({
/**
* 定义编辑表单(函数后缀名Create)
* 使用配置 edit: {"type": "email", "id": "user-email"}
* edit 里面配置的信息都通过 params 传递给函数
*/
"emailCreate": function(params) {
return '<input type="email" name="' + params.name + '"/>';
}
});The editor supports the validation configuration. For details, see the configuration of jquery.validate.js. You just configure the validation rules in edit.
var m = meTables({
table: {
aoColumns: [
{
title: "id",
data: "id",
// Verification cannot be empty, between 2,100 characters in length
edit: {type: "text", required: true, rangelength: "[2, 100]"}
}
],
},
...
});Implemented by the specified method
| Method name | return value | description |
|---|---|---|
| beforeShow(data, child) | true | Process before displaying the form |
| afterShow(data, child) | true | Display the form after processing |
| beforeSave(data, child) | true | Data processing before saving |
| afterShow(data, child) | true | Data processing after saving |
- beforeShow,afterShow Only triggers when creating and modifying data
- beforeSave,afterSave Will trigger when creating data, modifying data, deleting data
All functions that return false will prevent the program from continuing
meTables.fn.extend({
beforeShow: function(data, child) {
alert(this.action); // this.action Can be: "update" or "create"
if (this.action === "update") {
console.info(data);
}
return true;
},
afterShow: function(data, child) {
alert(this.action); // this.action Can be: "update" or "create"
if (this.action === "update") {
console.info(data); // When modified, data is the data of the table row
}
return true;
},
beforeSave: function(data, child) {
alert(this.action); // this.action Can be: "update" or "create" or "delete"
return true;
},
afterSave: function(data, child) {
alert(this.action); // this.action Can be: "update" or "create" or "delete"
return true;
}
});m = meTables({
title: "管理员信息",
// The first step: need to configure fileSelector, the selector array of the file upload form
fileSelector: ["#file"],
table: {
aoColumns: [
{
"title": "头像",
"data": "face",
"bHide": true,
// Step 2: Configure Upload File Form
"edit": {
"type": "file",
options: {
"id": "file",
"name": "UploadForm[face]",
"input-name": "face",
"input-type": "ace_file",
"file-name": "face"
}
}
}
],
}
});
// Step 3: Reset upload when new data is configured, and upload file when modifying data
mt.fn.extend({
beforeShow: function (data) {
$("#file").ace_file_input("reset_input");
// 修改复值
if (this.action == "update" && !empty(data.face)) {
$("#file").ace_file_input("show_file_list", [data.face]);
}
return true;
}
});