.NET中利用js让子窗体向父页面传值的实现方法

时间:2022-08-24 12:51:24

子页面C#后台代码:

复制代码代码如下:


/// <summary>   
     /// 将设置好的值赋给父页面   
     /// </summary>   
     /// <param name="count">需要传递的值</param>   
     void SetValueToParentPage(int count, string strPersons)  
     {  
         StringBuilder jsStr = new StringBuilder();  
         jsStr.Append(" var retValue = new Object();");  
         if (count == 0)  
         {  
             jsStr.AppendFormat("retValue = null;");  
         }  
         else  
         {  
             jsStr.AppendFormat("retValue.Nums='{0}';", count);  
             jsStr.AppendFormat("retValue.Names='{0}';", strPersons);  
         }  
         jsStr.Append("window.returnValue = retValue;window.close();");  

         ClientScript.RegisterStartupScript(GetType(), "close", jsStr.ToString(), true);  
     } 

 

 


父页面前台js:

复制代码代码如下:


function OpenPerChoose(url) {  
          var openobj = window;  
          if (typeof (window.dialogArguments) == "object") {  
              openobj = window.dialogArguments;  
          }  
          var returnValue = showPopWin(url, 800, 600, openobj);  
          if (returnValue != null) {  
              document.getElementById("<%=txtQualifiedNums.ClientID %>").value = returnValue.Nums;  
          }  
      } 

 

 

 

复制代码代码如下:


//弹出窗口   
function showPopWin(url, width, height, returnFunc) {  
    width = parseInt(width) + 30;  
    height = parseInt(height) + 30;  
    return window.showModalDialog(url + "&Datetime=" + GetTime(), document, "dialogWidth:" + width + "px;dialogHeight:" + height + "px;help:0;status:0;scroll:auto;center:1;resizable:1;");  

 

 


  <th style="width: 100px;">
                培训合格人数:
            </th>
            <td style="width: 50px;">
                <asp:TextBox ID="txtQualifiedNums" runat="server" Width="50px" ReadOnly="true"></asp:TextBox>
            </td>