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

  子页面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>