* Tony Tomov tony@trirand.com
* http://trirand.com/blog/
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
$.jgrid = $.jgrid ||
{};
$.extend($.jgrid, {
defaults: {
recordtext:
"{0} - {1}\u3000共 {2} 条"
,
emptyrecords:
"无数据显示"
,
loadtext:
"读取中..."
,
pgtext:
"{0} 共 {1} 页"
search: {
caption:
"搜索..."
,
Find:
"查找"
,
Reset:
"重置"
,
odata: [{oper:
'eq', text: '等于\u3000\u3000'}, {oper: 'ne', text: '不等\u3000\u3000'
}, {
oper:
'lt'
,
text:
'小于\u3000\u3000'
}, {oper:
'le', text: '小于等于'}, {oper: 'gt', text: '大于\u3000\u3000'
}, {
oper:
'ge'
,
text:
'大于等于'
}, {oper:
'bw', text: '开始于'}, {oper: 'bn', text: '不开始于'
}, {
oper:
'in'
,
text:
'属于\u3000\u3000'
}, {oper:
'ni', text: '不属于'}, {oper: 'ew', text: '结束于'
}, {
oper:
'en'
,
text:
'不结束于'
oper:
'cn', text: '包含\u3000\u3000'
oper:
'nc', text: '不包含'
oper:
'nu', text: '不存在'
oper:
'nn', text: '存在'
groupOps: [{op:
"AND", text: "所有"}, {op: "OR", text: "任一"
}]
edit: {
addCaption:
"添加记录"
,
editCaption:
"编辑记录"
,
bSubmit:
"提交"
,
bCancel:
"取消"
,
bClose:
"关闭"
,
saveData:
"数据己改变,是否保存?"
,
bYes:
"是"
,
bNo:
"否"
,
bExit:
"取消"
,
msg: {
required:
"此字段必需"
,
number:
"请输入有效数字"
,
minValue:
"输值必须大于等于 "
,
maxValue:
"输值必须小于等于 "
,
email:
"这不是有效的e-mail地址"
,
integer:
"请输入有效整数"
,
date:
"请输入有效时间"
,
url:
"无效网址。前缀必须为 ('http://' 或 'https://')"
,
nodefined :
" 未定义!"
,
novalue :
" 需要返回值!"
,
customarray :
"自定义函数需要返回数组!"
,
customfcheck :
"必须有自定义函数!"
view: {
caption:
"查看记录"
,
bClose:
"关闭"
del: {
caption:
"删除"
,
msg:
"删除所选记录?"
,
bSubmit:
"删除"
,
bCancel:
"取消"
nav: {
edittext:
""
,
edittitle:
"编辑所选记录"
,
addtext:
""
,
addtitle:
"添加新记录"
,
deltext:
""
,
deltitle:
"删除所选记录"
,
searchtext:
""
,
searchtitle:
"查找"
,
refreshtext:
""
,
refreshtitle:
"刷新表格"
,
alertcap:
"注意"
,
alerttext:
"请选择记录"
,
viewtext:
""
,
viewtitle:
"查看所选记录"
col: {
caption:
"选择列"
,
bSubmit:
"确定"
,
bCancel:
"取消"
errors: {
errcap :
"错误"
,
nourl :
"没有设置url"
,
norecords:
"没有要处理的记录"
,
model :
"colNames 和 colModel 长度不等!"
formatter: {
integer: {thousandsSeparator:
",", defaultValue: '0'
},
number: {decimalSeparator:
".", thousandsSeparator: ",", decimalPlaces: 2, defaultValue: '0.00'
},
currency: {
decimalSeparator:
"."
,
thousandsSeparator:
","
,
decimalPlaces:
2
,
prefix:
""
,
suffix:
""
,
defaultValue:
'0.00'
date: {
dayNames: [
"日", "一", "二", "三", "四", "五", "六"
,
"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"
monthNames: [
"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"
,
"一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"
AmPm: [
"am", "pm", "上午", "下午"
],
S:
function
(j) {
return
j < 11 || j > 13 ? ['st', 'nd', 'rd', 'th'][Math.min((j - 1) % 10, 3)] : 'th'
;
srcformat:
'Y-m-d'
,
newformat:
'n/j/Y'
,
parseRe:
/[Tt\\\/:_;.,\t\s-]/
,
masks: {
//
see http://php.net/manual/en/function.date.php for PHP format used in jqGrid
//
and see http://docs.jquery.com/UI/Datepicker/formatDate
//
and https://github.com/jquery/globalize#dates for alternative formats used frequently
//
one can find on https://github.com/jquery/globalize/tree/master/lib/cultures many
//
information about date, time, numbers and currency formats used in different countries
//
one should just convert the information in PHP format
ISO8601Long: "Y-m-d H:i:s"
,
ISO8601Short:
"Y-m-d"
,
//
short date:
//
n - Numeric representation of a month, without leading zeros
//
j - Day of the month without leading zeros
//
Y - A full numeric representation of a year, 4 digits
//
example: 3/1/2012 which means 1 March 2012
ShortDate: "n/j/Y",
//
in jQuery UI Datepicker: "M/d/yyyy"
//
long date:
//
l - A full textual representation of the day of the week
//
F - A full textual representation of a month
//
d - Day of the month, 2 digits with leading zeros
//
Y - A full numeric representation of a year, 4 digits
LongDate: "l, F d, Y",
//
in jQuery UI Datepicker: "dddd, MMMM dd, yyyy"
//
long date with long time:
//
l - A full textual representation of the day of the week
//
F - A full textual representation of a month
//
d - Day of the month, 2 digits with leading zeros
//
Y - A full numeric representation of a year, 4 digits
//
g - 12-hour format of an hour without leading zeros
//
i - Minutes with leading zeros
//
s - Seconds, with leading zeros
//
A - Uppercase Ante meridiem and Post meridiem (AM or PM)
FullDateTime: "l, F d, Y g:i:s A",
//
in jQuery UI Datepicker: "dddd, MMMM dd, yyyy h:mm:ss tt"
//
month day:
//
F - A full textual representation of a month
//
d - Day of the month, 2 digits with leading zeros
MonthDay: "F d",
//
in jQuery UI Datepicker: "MMMM dd"
//
short time (without seconds)
//
g - 12-hour format of an hour without leading zeros
//
i - Minutes with leading zeros
//
A - Uppercase Ante meridiem and Post meridiem (AM or PM)
ShortTime: "g:i A",
//
in jQuery UI Datepicker: "h:mm tt"
//
long time (with seconds)
//
g - 12-hour format of an hour without leading zeros
//
i - Minutes with leading zeros
//
s - Seconds, with leading zeros
//
A - Uppercase Ante meridiem and Post meridiem (AM or PM)
LongTime: "g:i:s A",
//
in jQuery UI Datepicker: "h:mm:ss tt"
SortableDateTime: "Y-m-d\\TH:i:s"
,
UniversalSortableDateTime:
"Y-m-d H:i:sO"
,
//
month with year
//
Y - A full numeric representation of a year, 4 digits
//
F - A full textual representation of a month
YearMonth: "F, Y"
//
in jQuery UI Datepicker: "MMMM, yyyy"
reformatAfterEdit:
false
baseLinkUrl:
''
,
showAction:
''
,
target:
''
,
checkbox: {disabled:
true
},
idName:
'id'
})(jQuery);
替换引入如图:
=================================
更多其它:
required:"此字段必需",
number:"请输入有效数字",
minValue:"输值必须大于等于 ",
maxValue:"输值必须小于等于 ",
email: "这不是有效的e-mail地址",
integer: "请输入有效整数",
date: "请输入有效时间",
url: "无效网址。前缀必须为 ('http://' 或 'https://')",
nodefined : " 未定义!",
novalue : " 需要返回值!",
customarray : "自定义函数需要返回数组!",
customfcheck : "必须有自定义函数!"
自定义验证函数实例:
{
name: 'customer_phone',
index: 'customer_phone',
width: 120,
editrules: {
required: true,
number: true,
custom: true,
custom_func: function (value, colNames) {
if (!(/^(1[3-9])\d{9}$/.test(value))) {
return [false, "不是正确的手机号格式"];
} else {
return [true, ""];
}
}
},
editable: true,
sorttype: "date",
editoptions:
{
size: "20",
maxlength: "11"
}
},
暴力设定表格自适应宽度:
//css
.ui-jqgrid .ui-jqgrid-bdiv {
overflow-x: hidden;
}
// js
var grid_selector = "#grid-table";
var parent_column = $(grid_selector).closest('[class*="col-"]');
//resize to fit page size
$(window).off('resize');
$(window).on('resize.jqGrid', function () {
$(grid_selector).jqGrid( 'setGridWidth', parent_column.width() );
})
//resize on sidebar collapse/expand
$(document).on('settings.ace.jqGrid' , function(ev, event_name, collapsed) {
if( event_name === 'sidebar_collapsed' || event_name === 'main_container_fixed' ) {
//setTimeout is for webkit only to give time for DOM changes and then redraw!!!
setTimeout(function() {
$(grid_selector).jqGrid( 'setGridWidth', parent_column.width() );
}, 20);
}
})
=================================
//初始化
jQuery(grid_selector).jqGrid({
//事件在初始化函数后,定义如下:选择单元格触发函数
onCellSelect: function(rowid,iCol,cellcontent,e){
console.log(rowid);
//原型如下:method=方法名 parameter1=参数
jQuery("#grid_id").jqGrid('method', parameter1,...parameterN );
//实例:
jQuery("#grid_id").jqGrid('setGridParam',{...}).jqGrid('hideCol',"somecol").trigger("reloadGrid");
//配置使用新API
jQuery.jgrid.no_legacy_api = true;
//====一般方法的使用
//原型
jQuery("#grid_id").jqGrid('method', parameter1,...parameterN );
//实例
jQuery("#grid_id").setGridParam({...}).hideCol("somecol").trigger("reloadGrid");
//===== 使用通用方法
//原型
jQuery.jgrid.jqGridFunction( parameter1,...parameterN );
//===== 特别方法
jQuery("#grid_id").jqGrid('filterToolbar',options);
使用传来的data数据填充表格。使用方法:
var mygrid = jQuery(”#”+grid_id)[0];
var myjsongrid = eval(”(”+jsonresponse.responseText+”)”); mygrid.addJSONData(myjsongrid);
myjsongrid = null;
jsonresponse =null;