📄 util.js
字号:
var objCache = { };//值对象集数组
var curid; //当前的id
var initConditions = {properties:[],operators:[],values:[],page:1,size:12};
var conditions = initConditions;//条件对象,对应于java中的com.htxx.service.Condition对象
//********列表框操作函数**********
//function:将查询结果填充到页面的列表框中,并实现翻页
//parameters:
// tbodyid:必填参数,tbody对象的id
// resultset:查询结果的结果集对象,该对象对应java中的com.htxx.service.ResultSet对象
// func:每行要执行的一个函数,有id(该行的行号)和obj(该行的值对象)2个参数
fillResult = function(tbodyid, resultset, func){
// Fill the list of table
fillTable(tbodyid, resultset.collection, func);
// Fill the objCache
setObjCache(resultset.collection);
// Set tfoot and condition object
dwr.util.setValues(resultset,{prefix:tbodyid});
var condition = resultset.condition;
if(condition===null){ condition = initConditions;}
condition["totalRows"] = resultset.totalRows;
condition["totalPages"] = resultset.totalPages;
conditions[tbodyid] = condition;
};
//function:用一个collection去填充一个页面的列表框
//parameters:
// tbodyid:必填参数,tbody对象的id
// resultset:查询结果的结果集对象
// func:每行要执行的一个函数,有id(该行的行号,是用0填充的3位的字符串)和obj(该行的值对象)2个参数
fillTable = function(tbodyid, collection, func){
if(!collection||collection===null){collection=[];}
if(!tbodyid){
dwr.util._debug("Not set the value of 'tbodyid'!");return;
}
var prefix, prefixDot="";
if(tbodyid!=='tbody'){prefix=tbodyid;prefixDot=tbodyid+".";}
// Delete all the rows except for the "pattern" row
dwr.util.removeAllRows(tbodyid, { filter:function(tr) {
return (tr.id != prefixDot+"pattern");
}});
// Create a new set cloned from the pattern row
var obj, id;
var objs = collection;
for (var i = 0; i < objs.length; i++) {
obj = objs[i];
id = i.toString();id=("000"+id).substr(id.length);
dwr.util.cloneNode(prefixDot+"pattern", { idSuffix:id });
// Execute a function in each row
if(func){func(id,obj);}
// Set the rownum objects
obj['rownum'] = i+1;
setValues(obj,{ prefix:prefix, postfix:id });
$(prefixDot+"pattern"+id).style.display = "";
}
};
//function:用页面缓存刷新列表框
//parameters:
// tbodyid:必填参数,tbody对象的id
// func:每行要执行的一个函数,有id(该行的行号)和obj(该行的值对象)2个参数
fillTableWithCache = function(tbodyid,func){
var resultset = new ResultSet();
dwr.util.getValues(resultset);
resultset.condition = conditions;
var collection = [];
for(var i = 0; i < objCache.length; i++){
collection.push(objCache[i]);
}
resultset.collection = collection;
fillResult(tbodyid,resultset,func);
};
//function:单击列表框中某行时所做的操作
clickItemTr = function(){
};
//************翻页操作函数*************
//function:翻到首页
//parameters:
// tbodyid:必填参数,tbody对象的id
// func:执行查询的函数,通常为init()
first = function(tbodyid, func) {
var condition = conditions[tbodyid];
condition.page = 1;
conditions[tbodyid] = condition;
func(condition);
};
//function:翻到前一页
//parameters:
// tbodyid:必填参数,tbody对象的id
// func:执行查询的函数,通常为init()
prior = function(tbodyid, func) {
var condition = conditions[tbodyid];
if(condition.page===1){
alert("this is the first page!");
}else{
condition.page = condition.page - 1;
conditions[tbodyid] = condition;
func(condition);
}
};
//function:翻到后一页
//parameters:
// tbodyid:必填参数,tbody对象的id
// func:执行查询的函数,通常为init()
next = function(tbodyid, func) {
var condition = conditions[tbodyid];
if(condition.page===condition.totalPages){
alert("this is the last page!");
}else{
condition.page = condition.page + 1;
conditions[tbodyid] = condition;
func(condition);
}
};
//function:翻到末页
//parameters:
// tbodyid:必填参数,tbody对象的id
// func:执行查询的函数,通常为init()
last = function(tbodyid, func) {
var condition = conditions[tbodyid];
condition.page = condition.totalPages;
conditions[tbodyid] = condition;
func(condition);
};
//function:翻到指定页
//parameters:
// tbodyid:必填参数,tbody对象的id
// func:执行查询的函数,通常为init()
topage = function(tbodyid, func) {
var condition = conditions[tbodyid];
var page = dwr.util.getValue("btnGoto",{prefix:tbodyid});
if(page<1||page>condition.totalPages){
alert("the page you input is out of range!");
}else{
condition.page = page;
conditions[tbodyid] = condition;
func(condition);
}
};
//**********DWR重新实现函数*******************
//function: 重新实现了dwr.util.setValues,但增加了后缀(postfix)的功能
//parameters:
// map:必填参数,值对象
// options:选项,如果设置prefix属性则设置前缀,如果设置postfix属性则设置后缀。
setValues = function(map, options) {
var prefixes = [];
if (options && options.prefix) {prefixes.push(options.prefix);}
var postfix = null ;
if (options && options.postfix) {postfix = options.postfix;}
_getDataProperties(map, prefixes, postfix);
};
//function: 重新实现了dwr.util._getDataProperties,但增加了处理Date类型的功能(原函数无法正确将日期按规定格式显示在页面)
//parameters:
// map:必填参数,值对象
// prefixes:前缀
// postfix:后缀
_getDataProperties = function(map, prefixes, postfix) {
for (var property in map) {
// Only recurse into plain objects, ie not functions, arrays, etc
if (dwr.util._isObject(map[property]) && !dwr.util._isArray(map[property]) && !dwr.util._isDate(map[property])) {
var prefixClone = [];
for (var i = 0; i < prefixes.length; i++) {
prefixClone.push(prefixes[i]);
}
prefixClone.push(property);
_getDataProperties(map[property], prefixClone, postfix);
} else {
var nestedProperty = property;
if (prefixes.length > 0) {
nestedProperty = (prefixes.join(".")) + "." + property;
}
if(postfix!==null){nestedProperty = nestedProperty + postfix;}
// Are there any elements with that id or name
if (dwr.util.byId(nestedProperty) !== null || document.getElementsByName(nestedProperty).length >= 1) {
if(dwr.util._isDate(map[property])){
var d = map[property];
var s = d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate();
dwr.util.setValue(nestedProperty, s);
}else{
dwr.util.setValue(nestedProperty, map[property]);
}
}
}
}
};
//******************Cache操作函数*******************
//function:将结果集按数组的形式填入到objCache中
//parameters:collection 结果集
setObjCache = function(collection){
if(!collection||collection===null){collection=[];}
var obj, id;
var objs = collection;
for (var i = 0; i < objs.length; i++) {
obj = objs[i];
id = i.toString();id=("000"+id).substr(id.length);
objCache[id] = obj;
}
};
//function:得到当前值对象
getCurObj = function(){
return objCache[curid];
};
//function:设置当前值对象
//parameters:eleid 页面tr对象的id,其后3位为行号
//return:返回当前值对象
setCurrent = function(eleid){
eleid = eleid.substring(eleid.length-3);
curid = eleid;
return getCurObj;
};
//function:得到当前值对象序号
getCurrent = function(){
return curid;
};
//function:得到某行的值对象
//parameters:eleid 页面tr对象的id,其后3位为行号
//return:返回值对象
getObj = function(eleid) {
return objCache[eleid.substring(eleid.length-3)];
};
//function:为单行编辑框中的select对象设置可选项,实际上是重新实现了dwr.util.addOptions,为其增加了一个“Please select”行
//parameters:
// eleid:select对象的id
// data:可选项的内容,应当是一个集合对象
// valueprop:作为option对象的value的值对象属性名
// textprop:作为option对象的text的值对象属性名
addOptions = function(eleid, data, valueprop, textprop) {
dwr.util.addOptions(eleid, ['<--Please select-->']);
dwr.util.addOptions(eleid, data, valueprop, textprop);
};
//******************单行编辑框操作函数*********************
//function:当从列表框中选择一行记录以后,将该行记录显示在一个单行编辑框中
//parameters:
// eleid:页面tr对象的id,其后3位为行号
// prefix:前缀
editObj = function(eleid, prefix) {
var obj = setCurrent(eleid);
setValues(obj,{ prefix:prefix });
return obj;
};
//function:保存单行编辑框中的信息,该函数实现了dwr的批处理功能
//parameters:
// obj:值对象
// func:执行保存的函数
saveObj = function(obj, func) {
dwr.engine.beginBatch();
if(func(obj)){
setValues(obj);
}
dwr.engine.endBatch();
objCache[curid] = obj;
};
//function:从列表框中删除一行数据
//parameters:
// eleid 页面tr对象的id,其后3位为行号
// tbodyid:必填参数,tbody对象的id
// func:执行删除的函数
delObj = function(eleid, tbodyid, func) {
eleid = eleid.substring(eleid.length-3);
var obj = objCache[eleid];
dwr.engine.beginBatch();
if(func(obj)){
$(tbodyid).deleteRow(eleid);
}
dwr.engine.endBatch();
};
//*************辅助函数*****************
//function:弹出对话框,显示某个值的内容或某个对象的所有属性的值
//parameters:value 要显示的值
alertValue = function(value){
if(value!==null&&typeof value == 'object') {alert(dwr.util.toDescriptiveString(value, 2));}
else{ alert(value);}
};
//function:得到一个iframe包含的网页,以便于对该网页进行操作
//parameters:ifr 一个iframe
//return:该iframe所包含的网页
ifrwindow = function(ifr){
if(ifr.window){return ifr.window;}
if(ifr.contentWindow){return ifr.contentWindow;}
return null;
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -