[ligerUI] grid封装调用方法
/**
* 获取页面参数
*/
function getPageSize(){
var xScroll, yScroll;
if (window.innerHeight && window.scrollMaxY) {
xScroll = window.innerWidth + window.scrollMaxX;
yScroll = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
xScroll = document.body.scrollWidth;
yScroll = document.body.scrollHeight;
}else {
xScroll = document.body.offsetWidth;
yScroll = document.body.offsetHeight;
}
var windowWidth, windowHeight;
if (self.innerHeight) {
if (document.documentElement.clientWidth) {
windowWidth = document.documentElement.clientWidth;
}
else {
windowWidth = self.innerWidth;
}
windowHeight = self.innerHeight;
}else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowWidth = document.documentElement.clientWidth;
windowHeight = document.documentElement.clientHeight;
}else if (document.body) { // other Explorers
windowWidth = document.body.clientWidth;
windowHeight = document.body.clientHeight;
}
if (yScroll < windowHeight) {
pageHeight = windowHeight;
}
else {
pageHeight = yScroll;
}
if (xScroll < windowWidth) {
pageWidth = xScroll;
}
else {
pageWidth = windowWidth;
}
arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
return arrayPageSize;
} /**
* 自适应iframe
* @param {Object} down
*/
function dyniframesize(down){
var pTar = null;
if (document.getElementById) {
pTar = document.getElementById(down);
}
else {
eval('pTar = ' + down + ';');
}
if (pTar && !window.opera) {
pTar.style.display = "block"
if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight) {
pTar.height = pTar.contentDocument.body.offsetHeight + 20;
pTar.width = pTar.contentDocument.body.scrollWidth + 20;
}
else
if (pTar.Document && pTar.Document.body.scrollHeight) {
pTar.height = pTar.Document.body.scrollHeight;
pTar.width = pTar.Document.body.scrollWidth;
}
}
} /**
* 判断iframe是否加载完毕
*/
function frameIsReady(iframe){
if (!/*@cc_on!@*/0) { //if not IE
iframe.onload = function(){
return true;
};
}
else {
iframe.onreadystatechange = function(){
if (iframe.readyState == "complete") {
return true;
}
};
}
return false;
}
/**
* 如果iframe还没有加载完成则延迟几秒后加载
*/
function delayLoad(s,call){
window.setTimeout(call,s);
}
//重置grid
function resizeGrid(){
if (jQuery(".l-panel-body").find(".l-grid-body2").css("height") != undefined) {
var viewHeightTemp = window.parent.jQuery('#gridFrame').parent().height();
var viewHeight = viewHeightTemp - 184;
jQuery(".l-panel-body").find(".l-grid-body2").css("height", viewHeight);
var viewWidth = 0;
var grid = jQuery("#dg_pastbusicustInfo").ligerGrid();
for (i = 0; i < grid.columns.length; i++) {
if (grid.columns[i]._hide != true && grid.columns[i]._hide != "true") {
viewWidth = viewWidth + grid.columns[i]._width;
}
}
viewWidth = viewWidth - 1;
jQuery(".l-panel-body").find(".l-grid-header-inner").css("width", viewWidth);
jQuery(".l-panel-body").find(".l-grid-body-inner").css("width", viewWidth);
}
} /**
* 合并单元格
* @param {Object} gridid
* @param {Object} columnid
*/
function mergecell(gridid, columnid){ //参数:表格id和列索引关键字,根据表格具体值来动态合并单元格
var i, j, k, x;
i = -1;
k = 1;
j = "";
x = 0;
var cellname = "";
jQuery("td[idjQuery='|" + columnid + "']", gridid).each(function(){
if (j == jQuery("div", this).text() || jQuery("div", this).text() == '') {
jQuery(this).addClass("l-remove");
k++;
jQuery("td[id='" + cellname + "']", gridid).attr("rowspan", k.toString());
}
else {
j = jQuery("div", this).text();
var a = jQuery(this);
cellname = a.attr("id"); //得到点击处的id
k = 1;
x = i;
}
i++;
});
jQuery(".l-remove").remove();
} /**
*模拟map
*/
Map = function(){
var mapAddM = {
/**
* entry函数
* @param {Object} key
* @param {Object} val
*/
entry: function(key, val, flag){
this.key = key;
this.value = val;
this.flag = flag;
},
//put方法
put: function(key, val, flag){
this.store[this.store.length] = new this.entry(key, val, flag);
},
//get方法
get: function(key){
for (var i = 0; i < this.store.length; i++) {
if (this.store[i].key === key)
return this.store[i].value;
}
},
//get方法
getFlag: function(key){
for (var i = 0; i < this.store.length; i++) {
if (this.store[i].key === key)
return this.store[i].flag;
}
},
//remove方法
remove: function(key){
for (var i = 0; i < this.store.length; i++) {
this.store[i].key === key && this.store.splice(i, 1);
}
},
//keyset
keySet: function(){
var keyset = new Array;
for (var i = 0; i < this.store.length; i++)
keyset.push(this.store[i].key);
return keyset;
},
//valset
valSet: function(){
var valSet = new Array;
for (var i = 0; i < this.store.length; i++)
valSet.push(this.store[i].value);
return valSet;
},
//flagSet
flagSet: function(){
var flagSet = new Array;
for (var i = 0; i < this.store.length; i++)
flagSet.push(this.store[i].flag);
return flagSet;
},
//clear
clear: function(){
this.store.length = 0;
},
//size
size: function(){
return this.store.length;
},
/**
* 迭代子
*/
iterator: function(){
//TODO 待实现
var obj = this.keySet();//所有的key集合
var idx = 0;
var me = {
/**
* 当前key
*/
current: function(){
return obj[idx - 1];
},
/**
* 第一个key
*/
first: function(){
return obj[0];
},
/**
* 最后一个key
*/
last: function(){
return obj[obj.length - 1];
},
/**
* 是否还有下一个元素
*/
hasNext: function(){
idx++;
if (idx > obj.length || null == obj[obj.length - 1])
return false;
return true;
}
};
return me;
}
};
for (var method in mapAddM) {
this.store = new Array;
Map.prototype[method] = mapAddM[method];
}
} /**
* 生成column
* @param {Object} map
*/
function createColumns(map,gridWidth){
var columns = [];
var i = 0;
for (var it = map.iterator(); it.hasNext();) {
var currentKey = it.current();//本次循环的key
var currentVal = map.get(currentKey);//当前value
var currentFlag = map.getFlag(currentKey);//判断是否隐藏该列
var columni = {};
columni.name = currentKey;
columni.display = currentVal;
columni.align = 'center';
columni.width = gridWidth?gridWidth:120;
if ((currentFlag && (currentFlag == "hide"))) {
columni.hide = 'true';
columni.width = 0.1; }
columns.push(columni);
i++;
}
return columns;
} /**
* 请求数据之前
*/
function beforeLoad(){ } /**
* 数据渲染完成后
*/
function afterDataRend(){
jQuery.ligerDialog.closeWaitting();
} /**
* 渲染grid
* @param {Object} year
* @param {Object} customer
*/
function renderLigerGrid(divId, data, map,gridWidth,callback){
var opptions = {
columns: createColumns(map,gridWidth),
data: data,
page:1,
pageSize: 30,
width: '100%',
height: '100%',
dataAction: 'server',
onLoading: beforeLoad,
cssClass:"myGrid",
//rownumbers:true,//是否显示行号
rowHeight:25,
onLoaded: function (){
afterDataRend();//加载完成之后
},
onAfterShowData : function(currenData){
},
onRendered:function (){
},
colDraggable: false,
rowDraggable: false,
enabledEdit: true,
clickToEdit: false,
clickToEdit: false,
checkbox:window.parent.checkBox,
isScroll: true
};
if(!manager){
//避免注册多次事件
opptions.onDblClickRow = function (data, rowindex, rowobj){
if(window.parent.dbClickRow)
window.parent.dbClickRow(data,rowindex,rowobj);//如果父窗口有此事件则调用父窗口事件
}
manager = jQuery("#" + divId).ligerGrid(opptions);
}else{
//重新渲染
manager.options.newPage = 1;
manager.options.data = $.extend(true, {}, data);
manager.loadData(true);
}
} /**
* 通用ajax请求
* @param {Object} _url
* @param {Object} divId
*/
function render(_url, _data, divId, map,gridWidth,callback){
try {
//本地数据
if(jQuery.parseJSON(_url)){
var d = jQuery.parseJSON(_url);
if (d.Total > 0) { renderLigerGrid(divId, d, map,gridWidth,callback);//请求成功
}else{
renderLigerGrid(divId, d, map,gridWidth,callback);//请求成功
}
}
} catch (e) {
//服务器数据
try {
jQuery.ligerDialog.waitting('正在加载数据...');
jQuery.ajax({
url: _url,
type: "post",
data: {
param: JSON.stringify(_data)
},
dataType: "json",
success: function(d){
if (d.Total > 0) {
renderLigerGrid(divId, d, map,gridWidth,callback);//请求成功
}
else{
renderLigerGrid(divId, d, map,gridWidth,callback);//请求成功
}
jQuery.ligerDialog.closeWaitting();
if(callback){
afterGridRendCallBack(callback);//渲染完成后回调函数
}
},
error: function(a, b, c){
jQuery.ligerDialog.error(a.status);
jQuery.ligerDialog.error(a.readyState);
jQuery.ligerDialog.error(b);
jQuery.ligerDialog.error(c);
jQuery.ligerDialog.closeWaitting();
}
});
}
catch (e) {
jQuery.ligerDialog.error(e);
}
}
} var manager;//ligerGridManager对象
/**
* 生成文件
* @param {Object} data
*/
function dataToTxt(data){
var file_name = "C://temp.txt";
file_name = file_name.split("//").join("////");
var FSO = new ActiveXObject("Scripting.FileSystemObject");
var f1 = FSO.CreateTextFile(file_name, true);
f1.write(data);
f1.close();
}
/**
* 自定义表格渲染完后回调函数
*/
function afterGridRendCallBack(callback){
var gridBody = jQuery("div.l-grid-body2");
callback.apply(gridBody,arguments);
} /**
* 获取url参数(主要解决iframe传递参数)
*/
function getUrlParam(_url,key){
if (_url.lastIndexOf("?") != -1) {
var queryStr = _url.substring(_url.lastIndexOf("?") + 1, _url.length);
if(!key)
return queryStr;//返回所有参数
else{
var params = queryStr.split("&");
for(var j = 0 ;j < params.length;j++){
var parma = params[j];
var tmp = param.split("=");
if(tmp[0]==key){
return tmp[1];
break;
}
}
} }
}
[ligerUI] grid封装调用方法的更多相关文章
- 扩展Jquery方法创建LigerUI Grid
///** //*封装jquery get请求ajax //*author:叶明龙 //*time:2012-12-10 //*/ function getAjax(url, para, fn) { ...
- 微信小程序:封装全局的promise异步调用方法
微信小程序:封装全局的promise异步调用方法 一:封装 function POST(url, params) { let promise = new Promise(function (resol ...
- XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)
XML序列化 #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...
- .netcore 3.1高性能微服务架构:封装调用外部服务的接口方法--HttpClient客户端思路分析
众所周知,微服务架构是由一众微服务组成,项目中调用其他微服务接口更是常见的操作.为了便于调用外部接口,我们的常用思路一般都是封装一个外部接口的客户端,使用时候直接调用相应的方法.webservice或 ...
- Vue实例中封装api接口的思路 在页面中用async,await调用方法请求
一般我们写小型的项目是用不到封装axios实例 但是当我们写大型项目时 接口有时候多到有上百个接口,那我们在请求一次调用一次接口,接口上好多都是重复的,这个时候我们就可以封装axios实例,既节省了 ...
- Ligerui Grid组件--学生信息列表
一.目录 1.多层架构+MVC+EF+AUTOFAC+AUTOMAPPER: 2.MVC中验证码的实现(经常用,记录备用) 3.Ligerui首页的快速搭建 4.Ligerui Grid组件--学生信 ...
- WebService服务调用方法介绍
1 背景概述 由于在项目中需要多次调用webservice服务,本文主要总结了一下java调用WebService常见的6种方式,即:四种框架的五种调用方法以及使用AEAI ESB进行调用的方法. 2 ...
- 关于tween.js 封装的方法
今天做的是匀速情况下div的运动.首先开始之前先了解运动的原理 A------------>>BA移动到B 这段距离是总距离 用一个变量保存下来:var dA移动到B 移动的总次数 用一 ...
- WebService两种调用方法
1.wsimport生成本地客户端代码 命令提示窗口执行生成命令. 格式:wsimport -s "src目录" -p “生成类所在包名” -keep “wsdl发布地址” 示例: ...
随机推荐
- 连接Oracle数据库帮助类
连接Oracle数据库帮助类,就是把连接Oracle数据库的方法封装起来,只需要在其它页面调用就可,不需要重复写. import java.sql.Connection; import java.sq ...
- 【转】VMWare vCenter 6.0安装配置
版权声明: 专注于"GIS+"前沿技术的研究与交流,将云计算技术.大数据技术.容器技术.物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案:文章允许 ...
- MySQL常用增删改查等操作语句
修改数据库的字符集 mysql>use mydb mysql>alter database mydb character set utf8;创建数据库指定数据库的字符集 ...
- HTTP 状态码之:301、302 重定向
转自:http://www.cnblogs.com/5207/p/5908354.html 概念 301 Moved Permanently 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用 ...
- sass使用中出现的问题
问题一:ruby按照官方文档安装后更换gem源时,报错Error fetching https://gems.ruby-china.org/: bad response Not Found 404 ( ...
- [Ynoi2016]镜中的昆虫
题目大意: 给定一个序列,有2个操作: 1. 区间覆盖.2. 区间数颜色. 解题思路: 珂朵莉树+树套树. 看到区间覆盖当然想到珂朵莉树然而这是Ynoi 所以我们得优化掉珂朵莉树那个暴力过程. 考虑对 ...
- javascript/jquery获取地址栏url参数的方法
1.jquery获取url window.location.href; 2.通过javascript是如何获取url中的某个参数 function getUrlParam(name) { var re ...
- python第十一周:RabbitMQ、Redis
Rabbit Mq消息队列 RabbitMQ能为你做些什么? 消息系统允许软件.应用相互连接和扩展.这些应用可以相互链接起来组成一个更大的应用,或者将用户设备和数据进行连接.消息系统通过将消息的发送和 ...
- jetty+httpClient使用
背景: 看了https://www.cnblogs.com/donlianli/p/10954716.html这篇文章之后,突然发现自己的知识面太窄了,连这些几乎可以说基础的工具都没怎么用过,于是决定 ...
- Navicat Premium (patch and keygen)
标签:Navicat 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://sofar.blog.51cto.com/353572/13 ...