扩展jquery easyui datagrid methods
增加方法: bindForm datagrid的翻页 绑定表单, 会将表单的参数提交给 服务器
参数: param {selector: "#formId", success: function(data, pageNo){}, isLoadFirstPage: true or false}
selector必填, 其他非必输
如下:
$("#gridId").datagrid("bindForm", {
selector: "#queryForm",
isLoadFirstPage: true
});
增加方法: loadFirstPage
将绑定的表单 参数一起提交给服务器, 查询第一页的数据
如下:
$("#gridId").datagrid("loadFirstPage");
(function($) {
function remoteRequest(url, params, success, pageNumber){
$.ajax({
url : url,
data : params,
method: 'post',
success : function(data) {
success(data, pageNumber);
}
});
};
$.extend($.fn.datagrid.methods, {
//分页查询绑定表单
bindForm: function(jq, param){
jq.datagrid("options").form = param;
if (!$.isFunction(param.success)){
param.success = function(data, pageNumber){
jq.datagrid('loadData', data);
jq.datagrid('getPager').pagination({
total: data.total,
pageNumber: pageNumber
});
}
}
var pagination = jq.datagrid('getPager');
pagination.pagination({
onSelectPage : function(pageNo, pageSize) {
var data = $(param.selector).serializeJson();
data.pageSize = pageSize;
data.pageNo = pageNo;
remoteRequest($(param.selector).attr("action"), data, param.success, pageNo);
}
});
if (param.isLoadFirstPage == true){
jq.datagrid('loadFirstPage');
}
},
//加载第一页数据
loadFirstPage: function(jq, undefined){
var form = jq.datagrid("options").form;
var pagination = jq.datagrid('getPager');
var pageSize = pagination.pagination('options').pageSize;
var data = $(form.selector).serializeJson();
data.limit = pageSize;
data.start = 0;
remoteRequest($(form.selector).attr("action"), data, form.success, 1);
}
});
})(jQuery);
|
扩展jquery, 增加两个json相关的方法, 用于提交表单, 表单绑定 等
详见 如下 方法 注释.
//jquery extend
(function($) {
function jsonToHttpParamsObject(jqForm, prefixKey, originObj){
if (prefixKey != ""){
prefixKey = prefixKey + ".";
}
$.each(originObj, function(key, val){
var tempPrefixKey = prefixKey + key;
if ($.isArray(val)){
jsonToHttpParamsArray(jqForm, tempPrefixKey, val);
}else if (typeof(val) == "object"){
jsonToHttpParamsObject(jqForm, tempPrefixKey, val);
}else{
//简单类型 ,string,number,boolean
jqForm.append("<input type='hidden' name='"+tempPrefixKey+"' value='"+val+"'/>");
}
});
};
function jsonToHttpParamsArray(jqForm, prefixKey, arr){
for (i=0; i<arr.length; i++){
var val = arr[i];
var tempPrefixKey = prefixKey + "[" + i +"]";
if ($.isArray(val)){
jsonToHttpParamsArray(jqForm, tempPrefixKey, val);
}if (typeof(val) == "object"){
jsonToHttpParamsObject(jqForm, tempPrefixKey, val);
}else{
//简单类型 ,string,number,boolean
jqForm.append("<input type='hidden' name='"+prefixKey+"' value='"+val+"'/>");
}
}
};
$.extend({
//将json对象(obj)转换为而向对象的http传参
//简单对象, 如:
//转换前: {username: 'zhangsan', age: 20}
//转换后: username=zhangsan&age=20
//支持自定义对象 如:
//转换前: {user: {username: 'zhangsan', age: 20}}
//转换后: user.username=zhangsan&user.age=20
//支持数组: 如:
//转换前: {userList: [{username: 'zhangsan', age: 20}, {username: 'zhangsan2', age: 21}]}
//转换后: userList[0].username=zhangsan&userList[0].age=20&userList[1].username=zhangsan2&userList[1].age=21
jsonToHttpParams : function(obj){
var jqForm = $("<form></form>");
jsonToHttpParamsObject(jqForm, "", obj);
return jqForm.serialize();
},
//将json对象(obj)(树状)转换为二维的json
//简单对象(二维, 转换前后都一样), 如:
//转换前: {username: 'zhangsan', age: 20}
//转换后: {username: 'zhangsan', age: 20}
//支持自定义对象 如:
//转换前: {user: {username: 'zhangsan', age: 20}}
//转换后: {user.username: 'zhangsan', username.age: 20}
//支持数组: 如:
//转换前: {userList: [{username: 'zhangsan', age: 20}, {username: 'zhangsan2', age: 21}]}
//转换后: {userList[0].username: 'zhangsan',userList[0].age: 20, userList[1].username : 'zhangsan2', userList[1].age:21}
jsonToJson: function(obj){
var jqForm = $("<form></form>");
jsonToHttpParamsObject(jqForm, "", obj);
var array = jqForm.serializeArray();
var result = {};
if (array.length > 0){
for (i=0; i<array.length; i++){
result[array[i].name] = array[i].value;
}
}
return result;
}
});
})(jQuery);
|
jQuery easyui tree 扩展
jquery easyui tree的方法 getChecked是不返回实心点节点的Node,
为了获取实心点节点的Node而扩展
//扩展jquery easyui tree
(function($){
$.extend($.fn.tree.methods,{
//扩展getChecked方法,使其能实心节点也一起返回
getAllChecked: function(jq){
var checked = $(jq).tree("getChecked");
var checkbox2 = $(jq).tree("getSolidChecked");
return checked.concat(checkbox2);
},
//扩展一个能返回实心节点的方法
getSolidChecked:function(jq){
var checked =[];
var checkbox2 = $(jq).find("span.tree-checkbox2").parent();
$.each(checkbox2,function(idx, item){
var node = jq.tree('getNode',item);
$.extend(node, $.data(this, "tree-node"), {
target : this
});
checked.push(node);
});
return checked;
}
});
})(jQuery);
调用:
var nodes = $("#tree").tree('getAllChecked');
|