用于弹出ModalDialog进行数据选择的控件
2005-01-30 10:57
204 查看
过去写的webform程序, 很多地方需要弹出一个窗口进行数据选择. 最简单的情况是选择了弹出窗口某条数据后直接修改某个html元素的值, 麻烦一点的就是数据库可能保存的是被选择记录的id, 所以除了有用于显示文字的textbox, 还要有一个用来存放id的hidden. 更恐怖的就是选了一条记录后, 还要根据这条记录填充多个html元素的值. 最近写了个控件, 能比较通用的处理这些情况.
这是一个复合控件, 里面包含了一个用来显示文字的TextBox(Text对应控件Text属性), 一个用来存放幕后真实值的隐藏的TextBox(Text对应控件的Value属性), 和一个用Image做成的按钮.
按钮被点击后, 将会调用负责弹出ModalDialog的js函数, 这个函数由ClientOnClick属性指定. 然后这个函数则要根据实际需要去写. 对ModalDialog的要求是, 点击某条记录后应该返回一个包含所需属性的自定义的js对象, 对打开ModalDialog的函数要求是, 第一个参数是传入用于显示文字的TextBox的id, 第二个是hidden的Id. 如果有需要的话可以有更多参数, 在控件的ClientOnClickParams属性以,param1,param2...的形式传入. 用showModalDioalog函数打开用于选择数据的窗口并选择数据后, 给显示文字TextBox和hidden赋需要的值, 最后函数返回ModalDialog的返回值. 在下面的示例函数里虽然只处理了name和id属性, 但ModalDialog可以返回更多信息( 例如sex, birthday属性), 留给ClientAfterClick属性指定的js函数去处理. 示例代码中用了setControls函数读取sex, birthday并把他们填入相应的TextBox
function openTestWindow(displayId, valueId, more) {
var popUp;
var offsetTop = document.getElementById(displayId).offsetTop;
var offsetLeft = document.getElementById(displayId).offsetLeft;
var parentElement = document.getElementById(displayId).offsetParent;
while (parentElement) {
offsetTop += parentElement.offsetTop;
offsetLeft += parentElement.offsetLeft;
parentElement = parentElement.offsetParent;
}
offsetLeft += window.screenLeft - document.body.scrollLeft ;
offsetTop += window.screenTop + document.getElementById(displayId).offsetHeight - document.body.scrollTop;
if (!more) {
url = '/dialogs/SelectPerson.aspx';
}
else {
url = '/dialogs/SelectPerson.aspx?morePerson=' + more;
}
url = applicationPath + url;
popUp = window.showModalDialog(url,
[window],
'dialogWidth:300px;dialogHeight:300px;status:0;dialogLeft:' + offsetLeft + ';dialogTop:' + offsetTop ) ;
if (popUp != null) {
document.getElementById(displayId).value = popUp.name;
document.getElementById(valueId).value = popUp.id;
return popUp;
}
}
控件 示例
这是一个复合控件, 里面包含了一个用来显示文字的TextBox(Text对应控件Text属性), 一个用来存放幕后真实值的隐藏的TextBox(Text对应控件的Value属性), 和一个用Image做成的按钮.
按钮被点击后, 将会调用负责弹出ModalDialog的js函数, 这个函数由ClientOnClick属性指定. 然后这个函数则要根据实际需要去写. 对ModalDialog的要求是, 点击某条记录后应该返回一个包含所需属性的自定义的js对象, 对打开ModalDialog的函数要求是, 第一个参数是传入用于显示文字的TextBox的id, 第二个是hidden的Id. 如果有需要的话可以有更多参数, 在控件的ClientOnClickParams属性以,param1,param2...的形式传入. 用showModalDioalog函数打开用于选择数据的窗口并选择数据后, 给显示文字TextBox和hidden赋需要的值, 最后函数返回ModalDialog的返回值. 在下面的示例函数里虽然只处理了name和id属性, 但ModalDialog可以返回更多信息( 例如sex, birthday属性), 留给ClientAfterClick属性指定的js函数去处理. 示例代码中用了setControls函数读取sex, birthday并把他们填入相应的TextBox
function openTestWindow(displayId, valueId, more) {
var popUp;
var offsetTop = document.getElementById(displayId).offsetTop;
var offsetLeft = document.getElementById(displayId).offsetLeft;
var parentElement = document.getElementById(displayId).offsetParent;
while (parentElement) {
offsetTop += parentElement.offsetTop;
offsetLeft += parentElement.offsetLeft;
parentElement = parentElement.offsetParent;
}
offsetLeft += window.screenLeft - document.body.scrollLeft ;
offsetTop += window.screenTop + document.getElementById(displayId).offsetHeight - document.body.scrollTop;
if (!more) {
url = '/dialogs/SelectPerson.aspx';
}
else {
url = '/dialogs/SelectPerson.aspx?morePerson=' + more;
}
url = applicationPath + url;
popUp = window.showModalDialog(url,
[window],
'dialogWidth:300px;dialogHeight:300px;status:0;dialogLeft:' + offsetLeft + ';dialogTop:' + offsetTop ) ;
if (popUp != null) {
document.getElementById(displayId).value = popUp.name;
document.getElementById(valueId).value = popUp.id;
return popUp;
}
}
控件 示例
相关文章推荐
- 用于弹出ModalDialog进行数据选择的控件
- Android弹出提示框数据进行选择
- 页面单击按钮弹出modaldialog然后调用ajax处理程序获取数据,给父级页面控件赋值
- 使用ScriptX控件进行Web打印IIS服务器始终弹出打印机选择的问题
- 如何:在 DataGrid 控件中对数据进行分组、排序和筛选
- 利用NPOI控件导出Excel,并且弹出提示框供客户选择导出文件路径
- 服务器控件使用js进行验证(选择地调用后台事件)
- ASP.NET中对DataList控件进行数据绑定并分页
- (Relax 1.6)POJ 1328 Radar Installation(利用数据有序化进行贪心选择)
- 如何选择机器学习模型进行数据分析_简要笔记
- 百度开源其NLP主题模型工具包,文本分类等场景可直接使用L——LDA进行主题选择本质就是降维,然后用于推荐或者分类
- 如何在Excel里单击一个单元格弹出一个日期选择控件,选择日期值后返回给该单元格。
- DataGrid 控件中的数据进行分组、排序和筛选
- 利用decode函数实现按不同的选择条件 对数据进行分组统计
- (贪心5.2.1)UVA 10026 Shoemaker's Problem(利用数据有序化来进行贪心选择)
- (DevExpress2011控件教程)ASPxGridView 范例4 :ASPxGridView 行选择、多表头设计、数据导出、主表细表等功能实现
- 点击MSFlexGrid数据控件的标题进行数据排序!
- 如何:对 DataGridView 控件中的数据进行排序
- PHP 弹出Windows密码窗口,用于数据密码
- ASP.NET实现弹出框真分页将复选框选择的数据存到数据库中(一)