// ========================================= 【每一項的TYPE類型】
{ display: '主鍵', name: 'id', width: 50, type: 'int' }, // 整型
{ display: '生日', name: 'birthday', type: 'date', width: 100 }, // 日期型{ display: '主鍵', name: 'id', width: 50, type: 'Text' }, // 文本型
{display: "序號", name: "Sort", width: 50, type: "text", align: "left" },
//========================================== 【詳細說明】
【display】 -- 標題內容 -- 【display: "序號"】 【name】 -- 對應字段名稱 -- 【name: "Sort"】\
【width】 -- 寬度 -- 【width: 50】
【type】 -- 文本型、數值型、日期型 -- 【type: "text",type: "int",type: "Text",type: "date",type:"float"】
【align】 -- 左對齊、右對齊、居中 -- 【align: "left" --left/center/right】
【minWidth: 140 】 --列的最小寬度-- 【minWidth: 140】
【hide】 -- 是否隱藏 -- 【hide: false】
【minWidth 】 -- 列的最小寬度 -- 【minWidth: 40】
【isSort】 -- 是否容許此列排序,默認爲容許排序 -- 【isSort: true】
【sAllowHide】 -- 是否容許隱藏,若是容許,將會出如今【顯示/隱藏列右鍵菜單】 -- 【isAllowHide: true】
【string】 -- 類型,用於排序 -- 【type: 'string'】
【editor】 -- 單元格編輯器 -- 全部的編輯器的構造的定義在$.ligerDefaults.Grid.editors,好比
editor: { type: 'text'}, // 【文本框】 editor: { type: 'select'}, // 【選擇框】javascript
[js] view plaincopycss
editor: { type: 'spinner' } html
將會使用$.ligerDefaults.Grid.editors['spinner'] 進行建立編輯器進行構建。
ligerGrid內置提供了 複選框、文本框、日期、數字調整器、下拉框 等編輯器。
【validate】 -- 驗證控件 -- 【validate: { required: true, digits: true },】
validate: { required: true, // 是否必填項 digits: true // 是不是數值型或數字 maxlength: 50 // 最大長度
min:1 // 最小長度
},
【】 -- 最小值 -- 【】
【】 -- 最小值 -- 【】
【】 -- 最小值 -- 【】
// ==================================== 【表標頭設置】java
表格的列提供了很完整的接口能夠擴展。不管是內容單元格或者是表頭單元格均可以對內容、佈局、大小進行自定義。 node
自定義表頭
好比表頭,咱們能夠把display直接設置一段html: git
[js] view plaincopyajax
<span style="font-size:14px; line-height:25px"> </span> { json
<span style="font-size:14px; line-height:25px"> </span> display: '<a href="javascript:void(0)">部門</a>', //表頭列顯示的文本,支持html 服務器
<span style="font-size:14px; line-height:25px"> </span> name: 'name', app
<span style="font-size:14px; line-height:25px"> </span> align: 'left'
<span style="font-size:14px; line-height:25px"> </span> },
或者使用headerRender:
[js] view plaincopy
<span style="font-size:14px; line-height:25px"> </span>//表頭內容自定義函數
<span style="font-size:14px; line-height:25px"> </span>headerRender: function (column)
[js] view plaincopy
<span style="font-size:14px; line-height:25px"> </span>{
<span style="font-size:14px; line-height:25px"> </span> return "<b>" + column.display + "</b>";
<span style="font-size:14px; line-height:25px"> </span>},
// =======================================================【表Grid的數據後和獲取】和【排序】
url: rootPath + 'handle/Sys_Label_member.ashx?ajaxaction=Get_Sys_Label', // url
sortName: 'Sort', // 默認排序
enabledSort:true // 就否容許排序
dataAction: 'server' //提交數據的方式:本地(local)或(server),選擇本地方式時將在客服端分頁、排序
pageSize: 20 // 默認一行顯示頁數
width: '100%', height: '100%', // 自動根據窗口大小填充滿屏 'auto'
checkbox: false // 啓用 打對勾的多選框
enabledEdit: true, // 是否容許編輯
clickToEdit: false // 就否容許單擊進入編輯
heightDiff: -10 // 高度補差,當設置height:100%時,可能會有高度的偏差,能夠經過這個屬性調整
tree: { columnName: 'CustomProducts_Name' }, // 經過樹顯示模式,樹字段顯示名稱
columnWidth:100 // 默認列寬度
showTitle:false //是否包含標題
// ---------------------------------------- // 雙擊執行事件
onDblClickRow : function (data, rowindex, rowobj)
{
selectdepartment();
},
dataAction: 'server', pageSize: 20, toolbar: {},
url: rootPath + 'handle/Sys_Label_member.ashx?ajaxaction=Get_Sys_Label', sortName: 'Sort',
width: '100%', height: '100%', heightDiff: -10, checkbox: false, enabledEdit: true, clickToEdit: false
// ===================================== 【複選框 - 記錄多選框】
checkbox: false // 啓用 打對勾的多選框
<div id="maingrid4" style="margin:0; padding:0"></div>
[javascript] view plaincopy
<pre><span style="font-size:14px;">$("#maingrid4").ligerGrid({
checkbox: true,
columns: [
{ display: '主鍵', name: 'CustomerID', align: 'left', width: 120 },
{ display: '公司名', name: 'CompanyName', minWidth: 60 },
{ display: '聯繫名', name: 'ContactName', width: 50,align:'left' },
{ display: '聯繫名', name: 'ContactName', minWidth: 140 },
{ display: '聯繫名', name: 'ContactName', minWidth: 140 },
{ display: '聯繫名', name: 'ContactName', minWidth: 140 },
{ display: '聯繫名', name: 'ContactName', minWidth: 140 },
{ display: '城市', name: 'City' }
], dataAction: 'server',pageSize:30,
url: "../../service/NwindDataHandler.ashx?View=Customers", sortName: 'CustomerID',
width: '100%',height:'100%'
});</span></pre><span style="font-size:18px"><br>
</span>
<pre></pre>
<pre></pre>
[javascript] view plaincopy
<span style="font-size:14px;">var grid;
$(function ()
{
grid = $("#maingrid4").ligerGrid({
checkbox: true,
columns: [
{ display: '主鍵', name: 'CustomerID', align: 'left', width: 120 },
{ display: '公司名', name: 'CompanyName', minWidth: 60 },
{ display: '聯繫名', name: 'ContactName', width: 50, align: 'left' },
{ display: '城市', name: 'City' }
], dataAction: 'server', pageSize: 30,
url: "../../service/NwindDataHandler.ashx?View=Customers", sortName: 'CustomerID',
width: '100%', height: '100%',
onCheckRow: function (checked,data,rowindex,rowobj)
{
checked && $.ligerDialog.alert('選擇的是'+data.CustomerID);
}
});
$("#pageloading").hide();
});
function getCheckedData() // 獲取選擇的複選框記錄
{
var rows = grid.getCheckedRows();
var str = "";
$(rows).each(function ()
{
str += this.CustomerID + ",";
});
$.ligerDialog.alert('選擇的是' + str);
}</span>
[javascript] view plaincopy
var jsonObj = {};
jsonObj.Rows = [
{ id: 3, name: "林三", sex: "男", birthday: "1989-01-12" },
{ id: 43, name: "陳麗", sex: "女", birthday: "1989-01-12" },
{ id: 33, name: "啊三", sex: "男", birthday: "1981-12-12" },
{ id: 34, name: "表三", sex: "男", birthday: "1983-01-12" },
{ id: 43, name: "陳麗", sex: "女", birthday: "1989-01-12" },
{ id: 33, name: "成三", sex: "男", birthday: "1989-11-23" },
{ id: 34, name: "都三", sex: "女", birthday: "1989-04-12" },
{ id: 324, name: "鄂三", sex: "男", birthday: "1999-05-15" },
{ id: 344, name: "林三", sex: "男", birthday: "1969-02-21" },
{ id: 1, name: "王開", sex: "男", birthday: "1989-01-12" }
];
$("#maingrid").ligerGrid({
columns: [
{ display: '', width: 30, isAllowHide: false, name: 'checkbox', isSort: false,
render: function (row)
{
var html = '<input type="checkbox" rowid="' + row.id + '">';
return html;
},
headerRender: function (column)
{
var html = '<input type="checkbox" onclick="selectAll(this)">';
return html;
}
},
{ display: '主鍵', name: 'id', width: 50, type: 'int' },
{ display: '名字', name: 'name', width: 50 },
{ display: '性別', name: 'sex', width: 50, isSort: false
},
{ display: '生日', name: 'birthday', type: 'date', width: 100 },
{
display: '模板列', isAllowHide: false,
render: function (row)
{
var html = '<a href="#" onclick="onedit(' + row.id + ')">編輯</a>';
return html;
}
}
],width:'100%',
data: jsonObj,
url: "../Default.aspx", pkName: 'id',
pageSizeOptions: [5, 10, 15, 20],
onAfterShowData: function (grid)
{
if ($.fn.ligerCheckBox)
$(".l-grid-body input:checkbox,.l-grid-hd-cell input:checkbox", grid).ligerCheckBox({ css: { marginTop: 3} })
}
});
// ===================================== 【事件和方法】
事件
事件名 | 參數 | 描述 |
onAfterAddRow | (e) | 增長行後事件 |
onAfterBeginEdit | (e) | 開始編輯後事件 |
onAfterChangeColumnWidth | (column, newwidth) | 改變列寬度事件 |
onAfterShowData | (data) | 顯示完數據事件 |
onAfterSubmitEdit | (e) | 提交編輯 事件 |
onBeforeChangeColumnWidth | (column, newwidth) | 驗證 改變列寬度 是否經過 |
onBeforeCheckAllRow | (checked, grid element) | 選擇前事件,能夠經過return false阻止操做(複選框 全選/全不選) |
onBeforeEdit | (e) | 編輯前事件 |
onBeforeShowData | (data) | 顯示數據前事件,能夠經過reutrn false阻止操做 |
onBeforeSubmitEdit | (e) | 驗證編輯器結果是否經過 |
onBeginEdit | (e) | 驗證 開始編輯 是否經過 |
onCancelEdit | (e) | 取消編輯 事件 |
onChangeSort | () | 改變排序事件 |
onCheckAllRow | (checked, grid element) | 選擇事件(複選框 全選/全不選) |
onCheckRow | (checked, rowdata, rowindex, rowDomElement) | 選擇事件(複選框) |
onContextmenu | (parm, e) | 右擊事件 |
onDblClickRow | (rowdata, rowindex, rowDomElement) | 雙擊行事件 |
onDragCol | (node) | 拖動列事件 |
onError | () | 錯誤事件 |
onLoaded | () | 加載完函數 |
onLoading | () | 加載時函數 |
onReload | () | 刷新事件,能夠經過return false來阻止操做 |
onSelectRow | (rowdata, rowindex, rowDomElement) | 選擇行事件 |
onSubmit | () | 提交前事件 |
onSuccess | () | 成功事件 |
onToFirst | () | 第一頁,能夠經過return false來阻止操做 |
onToggleCol | () | 切換列事件 |
onToLast | () | 最後一頁,能夠經過return false來阻止操做 |
onToNext | () | 下一頁,能夠經過return false來阻止操做 |
onToPrev | () | 上一頁,能夠經過return false來阻止操做 |
onUnSelectRow | (rowdata, rowindex, rowDomElement) | 取消選擇行事件 |
例子
[js] view plaincopy
var grid = $("#maingrid").ligerGrid({
columns:
[js] view plaincopy
[
{ name: 'id', display: '序號', width: 200 },
{ name: 'name', display: '名稱', width: 300 }
],
data: { Rows: griddata },
onSelectRow: function (rowdata, rowindex) {
//行記錄 對於數據行
//行索引 第幾行,從0開始
alert(rowdata.name);
}
});
grid.bind('SelectRow', function (rowdata, rowindex) {
//this 這裏的this都是指向grid
//行記錄 對於數據行
//行索引 第幾行,從0開始
alert(rowdata.name);
});
方法
方法 | 參數 | 描述 |
addEditRow | (rowdata) |
|
addRow | (rowdata, rowParm, isBefore, parentRow) |
|
addRows | (rowdataArr) |
|
appendRow | (rowData, targetRow, nearRow, isBefore) |
|
beginEdit | (rowParm) |
|
cancelEdit | (rowParm) |
|
changeHeaderText | (columnparm, headerText) |
|
changePage | (ctype) |
|
changeSort | (columnName, sortOrder) |
|
collapse | (targetRow) |
|
collapseDetail | (rowParm) |
|
deleteRow | (rowParm) |
|
deleteSelectedRow | () |
|
demotion | (targetRow) |
|
endEdit | (rowParm) |
|
expand | (targetRow) |
|
extendDetail | (rowParm) |
|
formatRecord | (record) |
|
getAdded | () |
|
getCheckedRowObjs | () |
|
getCheckedRows | () |
|
getChidren | (rowParm) |
|
getColumn | (columnpam) |
|
getColumns | (columnLevel) |
|
getColumnType | (columnname) |
|
getData | (status, removeStatus) |
|
getDeleted | () |
|
getParent | (rowParm) |
|
getRowObj | (rowParm) |
|
getSelected | () |
|
getSelectedRow | () |
|
getSelectedRowObj | () |
|
getSelectedRowObjs | () |
|
getSelectedRows | () |
|
getSelecteds | () |
|
getUpdated | () |
|
hasChildren | (rowParm) |
|
isLeaf | (rowParm) |
|
isTotalSummary | () |
|
loadData | (loadDataParm) |
|
loadServerData | (param, clause) |
|
reRender | (e) |
|
setColumnWidth | (columnparm, value) |
|
setOptions | (parms) |
|
SubmitEdit | (rowParm) |
|
toggle | (targetRow) |
|
toggleCol | (columnparm, visible) |
|
updateCell | (cell, value, rowParm) |
|
updateRow | (newRowData, rowDom) |
|
upgrade | (targetRow) |
|
例子
[js] view plaincopy
<a class="l-button" href="javascript:selectRow(2)">選擇行(3)</a>
<a class="l-button" href="javascript:getSelectRow()">獲取選擇</a>
[js] view plaincopy
var grid = $("#maingrid").ligerGrid({
columns: [
{ name: 'id', display: '序號', width: 200 },
{ name: 'name', display: '名稱', width: 300 }
]
});
grid.set({ data: { Rows: griddata} });
function selectRow(index) {
grid.select(index);
}
function getSelectRow() {
var rows = grid.getSelecteds();
for (var i in rows) {
alert(rows[i].name);
}
}
//自定義單元格渲染器 render : function (record, rowindex, value, column) { //this 這裏指向grid //record 行數據 //rowindex 行索引 //value 當前的值,對應record[column.name] //column 列信息 return value; //返回此單元格顯示的HTML內容(通常根據value和row的內容進行組織) }, //列彙總 totalSummary: { align: 'center', //彙總單元格內容對齊方式:left/center/right type: 'count', //彙總類型sum,max,min,avg ,count。能夠同時多種類型 render: function (e) { //彙總渲染器,返回html加載到單元格 //e 彙總Object(包括sum,max,min,avg,count) return "<div>總數:" + e.count + "</div>"; } }, //多表頭支持 columns: null },