2014-02-11 24 views
0

我需要將彈出窗口的Gridview中的值返回到父頁面的asp:textbox如下所示。將網格視圖值從彈出窗口傳遞迴asp.net中父頁面的文本框

<%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="page8.aspx.cs" Inherits="page8" %> 

<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder3" Runat="Server"> 
    <script type="text/javascript"> 
    function OpenPopup() { 
     window.open("Default5.aspx", "Popup", "scrollbars=no,resizable=no,width=500,height=250"); 

    } 
</script> 

     <table width="80%"> 
        <tr> 
         <td> 
          <asp:Label ID="Label1" runat="server" Text="Value from popup:"></asp:Label> 
         </td> 
         <td> 
          <asp:TextBox ID="txtOpenner" runat="server"></asp:TextBox> 
          <asp:Button ID="Button1" runat="server" Text="Popup" OnClientClick="OpenPopup()" /> 
          <asp:Label ID="Label2" runat="server" Text=""></asp:Label> 
         </td> 
        </tr> 
       </table> 

典子在下面指定的窗口。

child window(popup) 



    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default5.aspx.cs" Inherits="Default5" %> 

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
<title></title> 
    </head> 
<body> 
    <form id="form1" runat="server"> 
<script language="javascript" type="text/javascript"> 

    function SendValue(ID) { 

     window.opener.document.getElementById("txtOpenner").value = ID; 
     window.close(); 

    } 

</script> 

    <asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false" DataKeyNames="ID" DataSourceID="SqlDataSource2"> 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:Label ID="Label1" runat="server" Text='<%# Eval("DisplayName") %>'></asp:Label>      
       <div> 
        <a href="javascript:SendValue('<%# Eval("ID") %>');"> 
        <asp:Label ID="Label2" runat="server" Text='<%# Eval("ID") %>'> </asp:Label>  
        </a> 
       </div> 
      </ItemTemplate> 
     </asp:TemplateField>   
    </Columns> 
    </asp:GridView> 
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
     ConnectionString="<%$ ConnectionStrings:ConStr %>" 
     SelectCommand="select ID,DisplayName from TreeNodes_M"> 
    </asp:SqlDataSource> 
</form> 

    </body> 
    </html> 

我沒有得到孩子頁面中的parent.Any幫助文本框中選中GridView中值讚賞。

回答

0

,因爲使用master page您父頁面的'txtOpenner'的ID更改爲'ContentPlaceHolder3_txtOpenner',你不能這段代碼

window.opener.document.getElementById("txtOpenner").value = ID;

您應將文本框的ClientIDMode屬性設置爲static獲得元素,

<asp:TextBox ID="txtOpenner" ClientIDMode="Static" runat="server"></asp:TextBox> 

,然後你的代碼:

window.opener.document.getElementById("txtOpenner").value = ID; 

將工作

相關問題