⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 util.js

📁 一个hibernate加spring学习的例子
💻 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 + -