CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

子窗口给父窗口传值的问题

楼主wtadminxjeri(NND钱花哪去了?)2003-12-03 15:52:31 在 .NET技术 / ASP.NET 提问

现在的问题是,怎样在DataGrid进行编辑时,弹出模态窗口将值传送给DataGrid里的  
  TextBox控件?  
  问题点数:50、回复次数:25Top

1 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-03 15:54:37 得分 0

javascript:document.all("txt").value=returnValue;Top

2 楼wyfwyf2000(好久没来)回复于 2003-12-03 15:57:24 得分 0

javascript:document.all("txt").value=returnValue;  
  Top

3 楼wtadminxjeri(NND钱花哪去了?)回复于 2003-12-03 17:16:49 得分 0

什么意思?具体一点好吗?  
  Top

4 楼SpringWang(白水书生)回复于 2003-12-03 17:33:32 得分 0

function   openModalDialog(){  
  var   obj=window.showModalDialog(url,arguments,....);  
  document.all('TextBox控件的ClientID').value=obj;  
   
  模式中:  
  window.returnValue=你想返回的值Top

5 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-04 10:30:56 得分 0

楼上正确Top

6 楼wtadminxjeri(NND钱花哪去了?)回复于 2003-12-04 10:31:31 得分 0

老大们,是DataGrid模板列里的TextBox控件  
  Top

7 楼dcogili(大象)回复于 2003-12-04 10:53:45 得分 0

白水书生,up  
  跟控件没关系,只有ID正确,就能把值显示出来Top

8 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-04 11:09:45 得分 0

DataGrid模板列里的TextBox控件你要给它指定好ID,然后在页面中设置  
  foreach(Control   ctrl   in   DataGrid.Items.Cell[0].Controls)  
  {  
  if(   ctrl   is   TextBox   )  
  {    
  Response.Write("document.all('"+ctrl.ClientID+"').value=obj;")  
  }  
  }Top

9 楼stephenzhou1234(stephen)回复于 2003-12-04 11:23:00 得分 0

If   (Not   IsClientScriptBlockRegistered("clientScript1"))   Then  
                                  Dim   strScript1   As   String   =   "<script>"  
                                  strScript1   +=   "function   bbb(obj,obj2){"  
                                  strScript1   +=   "var   str=window.showModalDialog('http://202.115.112.69/hms/ss/CalendarDlg.asp','_blank','dialogWidth:200px;   dialogHeight:200px;status:no;   directories:yes;scrollbars:no;Resizable=no');"  
                                  'strScript1   +=   "var   str=window.showModalDialog('http://202.115.112.40:8079/ss/CalendarDlg.asp','_blank','dialogWidth:200px;   dialogHeight:200px;status:no;   directories:yes;scrollbars:no;Resizable=no');"  
                                  'strScript1   +=   "if(str!=null){obj.value=str;postDataBack(str);}}"  
                                  strScript1   +=   "if(str!=null){obj.value=str;obj2.value=str;}}"  
                                  strScript1   +=   "</script>"  
                                  RegisterClientScriptBlock("clientScript1",   strScript1)  
                          End   If  
   
  然后我添加事件的绑定    
  BUTTON1.Attributes.Add("on_click",   "bbb(document.all.worktime,document.all.worktime1);")  
  Top

10 楼stephenzhou1234(stephen)回复于 2003-12-04 11:24:17 得分 0

然后你   父页面的  
   
  worktime   和worktime1   对象   就得到了返回  
   
  没问题  
   
  我用N年了  
   
  有人知道    
  DATAGRID   如何   绑定JAVASCRIPT吗Top

11 楼stephenzhou1234(stephen)回复于 2003-12-04 11:25:52 得分 0

遇到窗口   弹出问题   具体是   JAVASCRIPT的绑定问题   或   ASPNET对窗口控制问题  
   
   
  我需要通过   点攻一个BUTTON方法   来弹出一个新窗口   然后从该窗口得到返回值  
  代码如下    
  下面是注册一段   JAVSCRIPT     现在看来没有什么问题  
   
    If   (Not   IsClientScriptBlockRegistered("clientScript1"))   Then  
                                  Dim   strScript1   As   String   =   "<script>"  
                                  strScript1   +=   "function   bbb(obj,obj2){"  
                                  strScript1   +=   "var   str=window.showModalDialog('http://202.115.112.69/hms/ss/CalendarDlg.asp','_blank','dialogWidth:200px;   dialogHeight:200px;status:no;   directories:yes;scrollbars:no;Resizable=no');"  
                                  'strScript1   +=   "var   str=window.showModalDialog('http://202.115.112.40:8079/ss/CalendarDlg.asp','_blank','dialogWidth:200px;   dialogHeight:200px;status:no;   directories:yes;scrollbars:no;Resizable=no');"  
                                  'strScript1   +=   "if(str!=null){obj.value=str;postDataBack(str);}}"  
                                  strScript1   +=   "if(str!=null){obj.value=str;obj2.value=str;}}"  
                                  strScript1   +=   "</script>"  
                                  RegisterClientScriptBlock("clientScript1",   strScript1)  
                          End   If  
   
  然后我添加事件的绑定    
  BUTTON1.Attributes.Add("on_click",   "bbb(document.all.worktime,document.all.worktime1);")  
   
   
  然后也没问题运行正常   !  
   
  但是  
  我需要通过   DATAGRID   里面的   BUTTON来做这件事情  
  于是我又这么做  
   
  DataGrid1.Attributes.Add("DataGrid1_DeleteCommand",   "bbb(document.all.worktime,document.all.worktime1);")  
   
  结果失败  
   
  不知道如何   给   GATAGRID里面的   ButtonColumn   添加绑定  
   
  不知道有没有人   解决过类似的问题   或者对   GATAGRID比较熟悉  
   
  ——————————————————————————————  
   
  如果不行我就想换种解决方法  
   
  用什么方法可以在ASPNET里    
  弹出具体大小   具体位置的窗口    
   
   
  谢谢Top

12 楼xrll()回复于 2003-12-04 11:36:23 得分 50

在ItemDataBound事件中:  
  if(e.Item.ItemType   ==   ListItemType.EditItem)  
  {                          
  HtmlInputButton   SImag   =   (HtmlInputButton)e.Item.FindControl("submitimg");SImag.Attributes["onclick"]   =   @"var   c   =   window.showModalDialog('InsertPhoto.aspx','','scroll:0;status:0;help:0;resizable:0;dialogWidth:500px;dialogHeight:400px');   if(c   !=   null)"+uid+".value=c";  
  }  
  在  
  public   void   MyDataGrid_Edit(Object   sender,   DataGridCommandEventArgs   E)  
  {  
  uid   =   E.Item.UniqueID   +   "_"+"Photo";  
  uid   =   uid.Replace(":","_");  
  MyDataGrid.EditItemIndex   =   (int)E.Item.ItemIndex;  
  BindGrid();  
  }  
  注意将uid设为公共变量。  
  Photo为模板列中编辑状态下取得返回值的TextBox  
  submitimg为模板列中编辑状态下打开模态窗口的按钮  
  Top

13 楼stephenzhou1234(stephen)回复于 2003-12-04 11:47:48 得分 0

没看懂  
   
  具体能解释下原理吗?Top

14 楼xrll()回复于 2003-12-04 11:56:50 得分 0

uid是TextBox在客户端显示的ID,点击页面右键可以看到  
  Top

15 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-04 11:59:23 得分 0

在ItemDataBound事件中:  
  if(e.Item.ItemType   ==   ListItemType.EditItem)  
  {                          
  HtmlInputButton   SImag   =   (HtmlInputButton)e.Item.FindControl("submitimg");  
  //在DataGrid的按钮列中找到你的按钮子控件  
  SImag.Attributes["onclick"]   =   @"var   c   =   window.showModalDialog('InsertPhoto.aspx','','scroll:0;status:0;help:0;resizable:0;dialogWidth:500px;dialogHeight:400px');   if(c   !=   null)"+uid+".value=c";  
  //添加javaScript到按钮的属性中激发客户端onclick事件  
   
  uid   =   E.Item.UniqueID   +   "_"+"Photo";  
  uid   =   uid.Replace(":","_");  
  MyDataGrid.EditItemIndex   =   (int)E.Item.ItemIndex;  
  BindGrid();  
  //是指定你的TextBox的clientid提供给前一个代码使用  
   
  //恕我冒昧,这个代码(指定id)好象有点不够强壮,希望能有更好的解决方法  
  Top

16 楼wtadminxjeri(NND钱花哪去了?)回复于 2003-12-04 13:48:58 得分 0

xrll()   的方法可能可行,至少我可以看出他找了编辑行的TextBox的id(这就对了),思路挺好,我试试,回头给分。Top

17 楼wtadminxjeri(NND钱花哪去了?)回复于 2003-12-04 13:51:51 得分 0

xrll()   ?  
  Photo为模板列中编辑状态下取得返回值的TextBox  
   
  你这句话是TextBox的id吗?  
  Top

18 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-04 14:01:47 得分 0

Photo为设计时附给TextBox的ID  
  submitimg也是同样在设计的时候附给button的IDTop

19 楼wtadminxjeri(NND钱花哪去了?)回复于 2003-12-04 14:58:44 得分 0

xrll()  
  if(e.Item.ItemType   ==   ListItemType.EditItem)  
  {                          
  HtmlInputButton   SImag   =   (HtmlInputButton)e.Item.FindControl("submitimg");SImag.Attributes["onclick"]   =   @"var   c   =   window.showModalDialog('InsertPhoto.aspx','','scroll:0;status:0;help:0;resizable:0;dialogWidth:500px;dialogHeight:400px');   if(c   !=   null)"+uid+".value=c";  
  }  
  如何传递两个参数?(改造上面语句)解决另外开贴给你加分Top

20 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-04 15:44:10 得分 0

HtmlInputButton   SImag   =   (HtmlInputButton)e.Item.FindControl("submitimg");SImag.Attributes["onclick"]   =   @"var   c   =   window.showModalDialog('InsertPhoto.aspx?cid="+cid+"','','scroll:0;status:0;help:0;resizable:0;dialogWidth:500px;dialogHeight:400px');   if(c   !=   null)"+uid+".value=c";  
  }  
   
  在InsertPhoto.aspx的Page_load里面写  
  btnok.Attributes.Add("onclick","javascript:eval(\"parent.document.all('"+Request["cid"]+"').value="+yourvalue+"\");");Top

21 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-04 15:45:22 得分 0

cid是另外一个文本框的clientidTop

22 楼stephenzhou1234(stephen)回复于 2003-12-04 15:55:32 得分 0

如何不用某一对象的   ONCLICK   或其他事件  
  来激活   JAVASCRIPT函数呢  
   
  btnok.Attributes.Add("onclick","JAVA函数“)  
   
  我如果是用  
  FUNCTION   AA()  
  {  
   
  //怎么来执行JAVASCRIPT函数呢  
   
  }Top

23 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-04 17:49:17 得分 0

FUNCTION   AA()  
  {  
   
  eval(\"parent.document.all('"+Request["cid"]+"').value="+yourvalue+"\");  
   
  }  
  Top

24 楼wtadminxjeri(NND钱花哪去了?)回复于 2003-12-04 19:23:46 得分 0

老大们我的意思是传递两个参数  
  窗口1(打开窗口的代码)  
  if   (!IsClientScriptBlockRegistered("clientScript"))    
  {  
  string   strScript=   "<script>"   ;  
  strScript   +=   "function   OpenWin(){"   +";";  
  strScript   +=   "var   str=window.showModalDialog('s.aspx',document.Form1.wzlb.value,'dialogWidth:180px;dialogHeight:200px;center:1;scroll:0;help:0;status:0')"   +";";  
  strScript   +=   "if(str!=undefined)   document.Form1.wzlb.value=str"   +";";  
  strScript   +=   "}"   +";";  
  strScript   +=   "</script>"   ;  
  RegisterClientScriptBlock("clientScript",   strScript);  
  }  
  xz.Attributes.Add("onclick",   "OpenWin()");  
  窗口2传给窗口1的代码:  
  Response.Write("<script   language=javascript>window.parent.returnValue='"+var+"';window.parent.close();</script>");  
   
  就是说谁能解决上述问题(传递两个参数,实际就是传递数组)另外开贴加分  
  Top

25 楼xiandaliu(仙达流,菜鸟先飞)回复于 2003-12-05 09:15:36 得分 0

Response.Write("<script   language=javascript>window.parent.returnValue='"+var+"';window.parent.close();</script>");  
  var可以是数组啊?直接传不就OK了吗?Top

相关问题

  • 子父窗口传值的问题
  • 如何从子窗口向父窗口传值?
  • 急!如何实现子窗口向父窗口传值?
  • 子窗口与父窗口的传值问题,与select相关
  • 求助关于子窗口向父窗口传值的问题?
  • 子窗口向父窗口传值的问题
  • 向父窗口传递值 多选框的值
  • 请问用showModalDialog 打开的新窗口,怎样传值回父窗口?
  • 如何将子窗口的值传回到框架父窗口急急!!!
  • ■■子窗口提交表单将值传给父窗口,同时关闭!■■

关键词

  • 控件
  • datagrid
  • document
  • javascript
  • worktime
  • clientscript
  • 弹出
  • strscript
  • 问题
  • 绑定

得分解答快速导航

  • 帖主:wtadminxjeri
  • xrll

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo