[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从入门到精通复习笔记
为方便大家跟着我的笔记练习,为此提供数据库表文件给大家下载:点我下载 描述一个表用 desc employees过滤重复的部门 select distinct department_id from e ...
- Assembly之Instruction之Byte and Word
Byte and word issues The MSP430 is byte-addressed, and little-endian. Word operands must be located ...
- 微信公众号API使用总结
官网: https://mp.weixin.qq.com/ API: http://mp.weixin.qq.com/wiki/home/index.html 接口调试工具:h ...
- [Intermediate Algorithm] - Binary Agents
题目 传入二进制字符串,翻译成英语句子并返回. 二进制字符串是以空格分隔的. 提示 String.charCodeAt() String.fromCharCode() 测试用例 binaryAgent ...
- 【sqli-labs】 less27 GET- Error based -All you Union&Select Belong to us -String -Single quote(GET型基于错误的去除了Union和Select的单引号字符型注入)
看一下过滤函数 看一下/s是什么东西 那直接通过大小写就可以绕过了 http://192.168.136.128/sqli-labs-master/Less-27/?id=0'%a0uNion%a0s ...
- Ad hoc polymorphism
与面向对象中的接口类或抽象类中定义的函数组类似: 函数的具体执行依赖与函数医用的类型. In programming languages, ad-hoc polymorphism[1] is a ki ...
- EF test
LibraryEntities db = new LibraryEntities(); private void btnSelect_Click(object sender, EventArgs e) ...
- HTML编辑器ASP.NET
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="kindeditor.aspx. ...
- cocos ios Label组件问题
软件:cocos creator v1.9.0 开发的过程中,一直在web上预览,Label组件显示一直没问题.在打包到ios上时,出现问题了: Label组件: 当我们缩小字体,发现没问题了,当我们 ...
- js 中this到底指向哪里?
其实js的this指向很简单.我们记住下面3种情况. this 指向的是浏览器中的window.代码如下: function fn(){ this.name='yangkun'; this.age=2 ...