function Dictionary() {
this.data = new Array();
this.put = function (key, value) {
this.data[key] = value;
};
this.get = function (key) {
return this.data[key];
};
this.remove = function (key) {
this.data[key] = null;
};
this.isEmpty = function () {
return this.data.length == 0;
};
this.size = function () {
return this.data.length;
};
}; $.fn.set = function (text) {
sele.SetValue(this, text);
} /*
选择器(王志强-2014-04-26)
*/
var sele = {
rIndex: 1, para: { id: 1, name: "", parameter: "" },
paras: new Dictionary(),
Init: function (options) {
this.SetOptions(options);
this.gname = this.options.gname;
this.fname = this.options.fname;
var controls = this.options.controls;
var column = gridDefault.GetColumnByField(this.fname); sele[this.fname] = $("input[name='" + this.gname + "$DXEditor" + column.index + "']");
for (var i = 0; i < controls.length; i++) {
var c = gridDefault.GetColumnByField(controls[i]);
if (c)
sele[controls[i]] = $("input[name='" + this.gname + "$DXEditor" + c.index + "'][autocomplete!='off']");
}
var cIndex = parseInt(column.index);
cIndex = cIndex < 10 ? "_" + cIndex : cIndex;
var evObj = {
EventObj: $("td[id^=" + this.gname + "_tccell][id$=" + cIndex + "]"),
InputObj: $("input[name='" + this.gname + "$DXEditor" + column.index + "'][autocomplete!='off']")
}
return evObj;
},
SetOptions: function (_options) {
this.options = {
gname: "ASPxGridView1",
fname: "SupplierId",
controls: []
};
$.extend(this.options, _options || {});
},
DialogOpen: function (url, _options, control, callback) {
var _this = this;
var options = {
title: "标题",
id: "msgDialog",
width: $(window).width() / 3 + "px",
height: $(window).height() / 3 + "px",
lock: false,
drag: false,
position: "default" };
$.extend(options, _options || {});
var kHeight = 0;
var cHeight = parseInt(options.height.replace("px", ""));
var cWidth = parseInt(options.width.replace("px", ""));
try {
if (($(control).offset().top + $(control).height() - $(document).scrollTop() + cHeight > $(window).height())
|| $(control).offset().left + $(control).width() - $(document).scrollLeft() + +cWidth > $(window).width()) { }
if ($(control).offset().top == 0 || $(control).offset().left == 0) {
options.position = "default";
}
} catch (e) {
options.position = "default";
} switch (options.position) {
case "default":
options.top = ($(window).height() - cHeight + kHeight) / 2 + $(document).scrollTop() + "px";
options.left = ($(window).width() - cWidth) / 2 + "px";
break;
case "right":
options.top = $(control).offset().top - cHeight / 2 + kHeight + "px";
options.left = $(control).offset().left + $(control).width() + "px";
break;
case "right-bottom":
options.top = $(control).offset().top + $(control).height() + kHeight + "px";
options.left = $(control).offset().left + $(control).width() + "px";
break;
case "bottom":
options.top = $(control).offset().top-2 + kHeight + "px";
options.left = $(control).offset().left-7 + "px";
break;
} if (options.top == "0px" || options.top == "0px") {
options.top = ($(window).height() - cHeight + kHeight) / 2 + $(document).scrollTop() + "px";
options.left = ($(window).width() - cWidth) / 2 + "px";
}
art.dialog.data("callback", function (data) {
callback(data);
});
if ((typeof sele.paras.get(sele.rIndex)) != "undefined") {
sele.para.id = sele.paras.get(sele.rIndex);
} else if (gridDefault.GetRowKey(sele.rIndex) != null) {
sele.para.id = gridDefault.GetRowKey(sele.rIndex);
} else {
sele.para.id = 0;
}
url += (url.indexOf("?") != -1) ? "&" : "?";
url += "id=" + sele.para.id + "&name=" + decodeURIComponent(sele.para.name) + "&parameter=" + decodeURIComponent(sele.para.parameter) + "";
art.dialog.open(url, options);
$("html").bind("click", function () { art.dialog({ id: options.id }).close(); $("html").unbind("click"); });
},
SetValue: function (o, txt) {
gridDefault.StartEditRow(this.rIndex);
o.val(Math.ceil(Math.random() * 10) + txt);
o.change();
o.val(txt);
o.change().blur();
gridDefault.StartEditRow(this.rIndex);
},
ShowAdvanceSelector: function (fname, controls, url, options, callback, dataType, eventObj) {
var _this = this;
var obj = this.Init({ fname: fname, controls: controls }); $(eventObj).live("click", function () {
_this.DialogOpen(url, options, obj.InputObj, function (data) {
if (!dataType) { dataType = "string"; }
dataType = dataType.toLocaleLowerCase();
var result = data;
if (dataType == "json") {
result = eval('(' + data + ')');
}
callback(result);
});
}); obj.EventObj.live("click", function () {
_this.DialogOpen(url, options, obj.InputObj, function (data) {
if (!dataType) { dataType = "string"; }
dataType = dataType.toLocaleLowerCase();
var result = data;
if (dataType == "json") {
result = eval('(' + data + ')');
}
callback(result);
});
}); obj.InputObj.live("click", function () { return false; });
}
};

AspxGridView 弹框选择器 JS的更多相关文章

  1. 参考bootstrap中的popover.js的css画消息弹框

    前段时间小颖的大学同学给小颖发了一张截图,图片类似下面这张图: 小颖当时大概的给她说了下,其实小颖也不知道上面那个三角形怎么画嘻嘻,给她说了DOM结构,具体的css让她自己百度,今天小颖自己参考boo ...

  2. js实现弹框及自动关闭

    <SCRIPT LANGUAGE="javascript"> < !-- window.open (''page.html'',''newwindow'',''h ...

  3. js弹框3秒后自动消失

    开发中有时候会需要最出弹框后,过几秒自动消失的效果,下面给大家分享一下我自己做的一个小案例. 案例中的弹框使用的是bootstrap里面的模态框,实现自动消失则用的是js中的setInterval方法 ...

  4. js弹框处理

    # -*- coding:utf-8 -*- """ js弹框处理 """ from selenium import webdriver d ...

  5. Js仿弹框

    收藏一个简单实用的JS弹框,通过隐藏和显示div来实现,代码来自脚本之家! <html> <head> <title> LIGHTBOX EXAMPLE </ ...

  6. css-dialog样式实现弹框蒙层全屏无需JS计算高度兼容IE7

    <!DOCTYPE html><html><head>  <meta charset="UTF-8">  <title> ...

  7. 【前端开发】--js弹框

    js三种弹框 一.普通弹框 这类弹框就是仅仅是个提示作用,并不会做其它操作 关键词:alert()    这个没啥好说的,就是一个弹框.  二.判断弹框     这类框有一个判断作用 关键字:conf ...

  8. js 简单弹框toast

    新建toast.js文件 function Toast(msg,duration){ duration=isNaN(duration)?3000:duration; var m = document. ...

  9. js弹框的3种方法

    js的三种弹框的方法 1.第一种 :  alert("1"); 2.第二种 :  window.open("Tests2.html"); var r = con ...

随机推荐

  1. 洛谷-P3808-AC自动机(模板)

    链接: https://www.luogu.org/problem/P3808 题意: 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过. 思路: 模板, 代码: #include < ...

  2. Python基础--01小项目体现的基础知识

    part1:猜拳游戏 #coding=utf-8 #当有汉语时可能编译器不认识,需要定义代码 ''' 多行注释 写这个程序是为了熟悉python的基本语法 这是第一个小例子包含简单的if判断,循环和输 ...

  3. CentOS上部署Kubernetes集群

    1.开始前系统环境准备 # 1.设置基本环境 yum install -y net-tools conntrack-tools wget vim ntpdate libseccomp libtool- ...

  4. PHP mysqli_fetch_all() 函数

    从结果集中取得所有行作为关联数组: <?php // 假定数据库用户名:root,密码:123456,数据库:RUNOOB $con=mysqli_connect("localhost ...

  5. luogu 4411 [BJWC2010]取数游戏 约数+dp

    不大难的dp,暴力拆一下约数然后按照约数来统计即可. 注意:vector 很慢,所以一定特判一下,如果没有该数,就不要添加. Code: #include <bits/stdc++.h> ...

  6. luogu 2519 [HAOI2011]problem a 动态规划+树状数组

    发现每一次 $[b[i]+1,n-a[i]]$ 这个区间的分数必须相同,否则不合法. 而一个相同的区间 $[l,r]$ 最多只能出现区间长度次. 于是,就得到了一个 $dp:$ 将每一种区间的出现次数 ...

  7. javascript原型继承

    在传统的基于Class的语言如Java.C++中,继承的本质是扩展一个已有的Class,并生成新的Subclass. 由于这类语言严格区分类和实例,继承实际上是类型的扩展.但是,JavaScript由 ...

  8. C语言中的指针加减偏移量

    C语言指针偏移技巧(也是一个要注意的坑) - 陈杰柱的博客 - CSDN博客  https://blog.csdn.net/cjzjolly/article/details/82116772 C语言中 ...

  9. Python基础之基本数据类型的总结

    基本数据类型的总结 1. 按照存储空间的占用分(从低到高) 数字 字符串 集合:无序,即无序存索引相关信息 元组:有序,需要存索引相关信息,不可变 列表:有序,需要存索引相关信息,可变,需要处理数据的 ...

  10. Codeforces 1111 E. Tree(虚树,DP)

    题意 有一棵树,q个询问,每次询问,指定一个点做树根,再给定k个点,要求把这些点分成不超过m组的方案数,分配的限制是任意两个有祖先关系的点不能分在同一组.题目还保证了所有的询问的k加起来不超过1e5. ...