寂寞部屋
- 关注互联网,关注生活
关注互联网,关注生活
2019年五月
« 4月    
 12345
6789101112
13141516171819
20212223242526
2728293031  
  • 日志总数:553 篇
  • 浏览总量:2,434,897 次
  • 运行天数:618 天
  • 建站时间:2017-9-14
  • 最后更新:2019-4-2

关闭子页面,只刷新父页面的DataGrid

界面说明:
父页面(CangKuEdit.aspx)中,按“新增”(id=imgbtnAdd),弹出CangKuAdd.aspx子页面。
子页面(CangKuAdd.aspx )中,按“确定”(id=btnSubmit),新增数据到数据库、关闭子页面、刷新父页面DataGrid 以反映数据的异动,注意只能刷新DataGrid,其他控件里输入的值要保留!

分两种情况:
一、 DataGrid直接写在父页面中

CangKuEdit.aspx
加上一段JS:

XML/HTML代码
  1. <HEAD>  
  2.     <script language="javascript">    
  3.         function doPostBack()   
  4.         {   
  5.             var theform;   
  6.                
  7.             if (window.navigator.appName.toLowerCase().indexOf("netscape") > -1)    
  8.             {   
  9.                 theform = document.forms["CangKuLLEdit"];   
  10.             }   
  11.             else    
  12.             {   
  13.                 theform = document.CangKuLLEdit;   
  14.             }   
  15.                
  16.             theform.__EVENTTARGET.value = "imgbtnAdd";   
  17.             theform.__EVENTARGUMENT.value = null;   
  18.             theform.submit();   
  19.         }   
  20.        
  21.         function openwin(strBillNO)   
  22.         {   
  23.             window.open("CangKuAdd.aspx?returncontrol=imgbtnAddstrBillNo="+ strBillNO,’new1′,’left=160,top=200,height=450,width=750,toolbar=0,scrollbars=2‘);   
  24.             return false;   
  25.         }   
  26.     </script>  
  27. </HEAD>  

CangKuEdit.aspx.cs
在Page_Load中加上:

C#代码
  1. imgbtnAdd.Attributes.Add("ondblclick","doPostBack();");   
  2. imgbtnAdd.Attributes.Add("onclick","return openwin(‘"+txtBillNo.Text+"’);");  

CangKuAdd.aspx.cs
在在“确定”事件btnSubmit_Click中加上: 

C#代码
  1. Response.Write("<script>window.opener.document.all.imgbtnAdd.fireEvent(‘ondblclick’);window.close();</script>");  

二、 DataGrid是父页面调用的用户控件(CCDataGrid.ascx,“新增”(id=imgbtnAdd)也在CCDataGrid.ascx中)

因为用户控件会在主页面控件之前被解析,
所以,用户控件的事件中,无法捕获主页面上的控件(如:<asp:textbox id="txtBillNo"/>,原因是它还未被解析)。
CCDataGrid.ascx
加上一段JS:

JavaScript代码
  1. <script language="javascript">   
  2.     function PostBack()   
  3.     {   
  4.         __doPostBack("CCDataGrid1:CCDataGrid1_imgbtnAdd"null);   
  5.     }   
  6. </script>  

CCDataGrid.ascx.cs
在Page_Load中加上:

C#代码
  1. imgbtnAdd.Attributes.Add("ondblclick","PostBack();");  

在“确定”事件imgbtnAdd_Click中加上:

C#代码
  1. this.Page.RegisterHiddenField("IsOpenAddPage","true");   
  2. // 在用户控件的"新增"事件中注册一个隐藏控件:  

CangKuEdit.aspx
在主页面的最底下写: 

XML/HTML代码
  1. </tr>  
  2.             </table>  
  3.         </FORM>  
  4.         <script language="javascript">  
  5.             var obj = document.getElementById("IsOpenAddPage");   
  6.             if (obj!=null)   
  7.             {   
  8.                 if (obj.value==’true’)   
  9.                 {   
  10.                     OpenAddPage();   
  11.                     obj.value=;   
  12.                 }   
  13.             }   
  14.                
  15.             function OpenAddPage()   
  16.             {   
  17.                 var SID=document.getElementById(‘txtBillNo’).value;   
  18.                 var url=‘CangKuAdd.aspx?returncontrol=CCDataGrid1_imgbtnAdd&strBillNo=’+SID;   
  19.                 window.open(url,’new1′,’left=160,top=200,height=450,width=750,toolbar=0,scrollbars=2‘);   
  20.             }   
  21.         </script>  
  22.     </BODY>  
  23. </HTML>  

CangKuAdd.aspx.cs
在“确定”事件btnSubmit_Click中加上:

C#代码
  1. Response.Write("<script>window.opener.document.all(‘CCDataGrid1_imgbtnAdd’).fireEvent(‘ondblclick’);window.close();</script>");  

 

来源:http://www.vs2005.com/ASP.NET/a325p1.aspx

本站原创文章,请勿复制转载
版权声明:除特别注明外,本站所有文章均为原创,未经许可请勿复制、转载
2008-01-05
3,364 views
暂无评论

发表评论

注意: 评论者允许使用'@user空格'的方式将自己的评论通知另外评论者。例如, ABC是本文的评论者之一,则使用'@ABC '(不包括单引号)将会自动将您的评论发送给ABC。使用'@all ',将会将评论发送给之前所有其它评论者。请务必注意user必须和评论者名相匹配(大小写一致)。