首页 新闻 搜索 专区 学院

ASP.NET弹出一个人员列表窗口,选择其中的复选框,然后赋值到主窗口

0
悬赏园豆:60 [已解决问题] 解决于 2011-08-31 21:33

比如我在弹出的窗口中有一个有个GridView,是放员工信息,其中有一模板列,用于选择那些人,选中后如何返回这些信息给主调用窗口?返回的是gridView的行的内容。

弹出窗口我用的是jquery模态窗口插件

问题补充:

效果:A页面有个TextBox,一个Button,点击Button弹出一个(模态)窗口,窗口是调用B页面(B页面一个TextBox,一个Button按钮,输入条件查询到数据库相应的数据,读取到Gridview中),点击Gridview的一行获取该行的一列值,该值显示到A页面上的TextBox中,同时窗口也关闭

一缕秋丝的主页 一缕秋丝 | 初学一级 | 园豆:3
提问于:2011-07-08 08:54
< >
分享
最佳答案
1

在弹出窗口面面你能取到值对吧?

给父页面赋值,主要是通过window.opener来实现。

下面是一个例子:参数是调用时传入的:

var parentWindow; //父窗口

//不同的来源, 取值方法不同
if(window.opener)
parentWindow
= window.opener;
else if(window.openerWindow)
parentWindow
=window.openerWindow; //由外部程序传入的参数
else{
alert(
"提示:父窗口参数错误");
return;
}

//取opener域指针
var nameValueField = parentWindow.document.getElementById(window.NameValueField);
var nameField
= parentWindow.document.getElementById(window.NameField);
var valueField
= parentWindow.document.getElementById(window.ValueField);
var callBackFn
= window.callBackFn;

//设置域值
if(nameValueField)
{
nameValueField.value
= retSelectedNameValue;
}
if(nameField)
{
nameField.value
= retSelectedName;
}
if(valueField){
valueField.value
= retSelectedValue;
}

if(callBackFn)
{
eval(
"parentWindow."+callBackFn)(retSelectedName,retSelectedValue,retSelectedNameValue);
}
//关闭选择窗口,不同的来源, 方法不同
if(window.opener)
this.close();
else if(window.parentWindow)
window.parentWindow.close();
else{
alert(
"提示:未传入父窗口参数,请手动关闭。");
return;
}

收获园豆:60
tp3cd | 菜鸟二级 |园豆:409 | 2011-08-01 11:18

在大家的帮下已经解决了谢谢大家!

一缕秋丝 | 园豆:3 (初学一级) | 2011-08-31 21:32
其他回答(7)
1
artwl | 园豆:16526 (专家六级) | 2011-07-08 09:05
0

用Jquery ajax试试呗

peter cheng | 园豆:431 (菜鸟二级) | 2011-07-08 09:31
0

将弹出窗口的值保存在JavaScript Object中,通过Window.returnValue返回

var returnData = OpenDialog(...);

在调用窗口获得返回值然后想怎么操作就怎么操作

^沙嘉^ | 园豆:326 (菜鸟二级) | 2011-07-08 10:37
0

用一个EventHander做

Ringgo.Yao | 园豆:207 (菜鸟二级) | 2011-07-08 15:59
0

可以查看jQuery插件的代码,在关闭窗口的时候,可以返回点击值给A页面

klice | 园豆:173 (初学一级) | 2011-07-09 11:45
我想要一个案例,因为没做过,想学习。网上找的一些jquery,自己试试做了但是就是传值不了
支持(0) 反对(0) 一缕秋丝 | 园豆:3 (初学一级) | 2011-07-09 11:49
能不能把你使用的jquery插件的代码贴出来看看?
支持(0) 反对(0) klice | 园豆:173 (初学一级) | 2011-07-10 22:21
0

给点参考代码你

父页面JS代码(Button onclick事件示例:javascript:OpenOvertimeDlog('company');return false;  如果需要刷新父页面,请把return false 去掉 )

         function OpenOvertimeDlog(frmWin) {             var me;             var de             var mm = new Array();             //     action = frmWin;             // 把父页面窗口对象当作参数传递到对话框中,以便对话框操纵父页自动刷新。              switch (frmWin) {                 case "company":                     me = "WebData/DataCompany.aspx?company=" + escape(document.getElementById("txtcompany").value) + ""; ;                     break;                 case "npp":                     me = "WebData/DataNPPForm.aspx?company=" + document.getElementById("txtcompany").value + "&npp=" + escape(document.getElementById("txtnpp").value) + "&rev=" + escape(document.getElementById("txtversion").value) + ""; ;                     break;             }             // 显示对话框。             mm = window.showModalDialog(me, null, 'help:no;status:no;dialogWidth=760px;dialogHeight=560px')
             if (mm != null) {                 switch (frmWin) {                     case "company":                         window.document.getElementById("txtcompany").value = mm.CompanyCode;                         break;                     case "npp":                         window.document.getElementById("txtcompany").value = mm.CompanyCode;                         window.document.getElementById("txtnpp").value = mm.NPPNO;                         window.document.getElementById("txtversion").value = mm.Version;                         $("#uploadify")[0].style.display = 'none'
                         $.ajax({                             type: "POST",                             url: "JSProcess.ashx",                             data: { companycode: $("#txtcompany").val(), nppno: $("#txtnpp").val(), version: $("#txtversion").val(), filename: "" },                             success: function (data) {                                                         $("#msg").html("");                                     $('<a id="htl" href="' + getRootPath() + '/upload/' + decodeURI(data) + '">' + decodeURI(data) + '</a>').replaceAll("#htl");                                 }                             }                         });                         break;                 }                   }

子页面JS代码

           //  row_data数组    

  row_data = row_data.data;                 window.returnValue = row_data;                 window.close();

//如果是Grid,可以在Grid中双击事件(其它的也可)添加上述的代码即可 

Shannon | 园豆:601 (小虾三级) | 2011-07-11 10:23
0

opener.document.getElementById('主頁面的控件ID值').value =子頁面點擊的Grid行的值;
主頁面可以增加個hidden控件接收,然後在主頁面取值就可以的哦

soarfe | 园豆:146 (初学一级) | 2011-07-11 16:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册