日期:2014-05-17  浏览次数:20457 次

ASP.net 子页面传递数据到父页面 求好心人帮帮我 急!
父页面有个TextBox和button,通过按钮弹出子页面,子页面有个GridView,想通过双击GridView取出名称字段传递给TextBox1,并关闭子页面,但我双击GridView提示页面脚本出错

父页面text1.aspx:
<script type="text/javascript">

function Show()

{
  var  arrTemp = window.showModalDialog('test2.aspx', null, 'DialogWidth:400px;DialogHeight:350px');

//这是用来显示对话框的文本

document.getElementByid("<%=TextBox1.ClientID%>").value=arrTemp;

//通过此句我们可以获取从子页面传来的值并将它赋给txtGKCompanyID
}
</script>

<input id="GKCompanyID" type="button" value="..." onclick="Show()" style="width:30px"/>

子页面text2.aspx
<script type="text/javascript"   language="javascript">
    function doChoose(itemid) 
    {
        window.parent.returnValue = itemid;

        window.parent.close();
    }
  </script>
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"       
        onrowdatabound="GridView1_RowDataBound"  
       >
        <Columns>
            <asp:BoundField DataField="id" HeaderText="编号" />
            <asp:TemplateField HeaderText="名称">                       
                        <ItemTemplate>
                             <asp:Label ID="lbCompanyID" runat="server" Text='<%# Bind("name") %>'></asp:Label>
                         </ItemTemplate>
                     </asp:TemplateField>

        </Columns>
    </asp:GridView>
后台代码:
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            string lbCompanyID = ((Label)(e.Row.FindControl("lbCompanyID"))).Text.Trim();
            e.Row.Attributes.Add("ondblclick", "doChose('" + lbCompanyID + "');");

            //通过最下面的一句可以将GridView添加双击的事件使其双击时调用前台的doChose的方法:
        }
    }

------解决方案--------------------
可以试试用window.open做。
window.open("sUrl","sName","sFeature","bReplace");
刚好有个例子:
基础用法