简体   繁体   English

使用TabPanel在Parent中传递子值

[英]Passing child values in Parent with TabPanel

I am having problem with the script of passing values from child to parent with tabpanel (controller). 我在使用tabpanel(控制器)将值从子级传递到父级的脚本时遇到问题。 Within that Tab there's a textbox. 在该选项卡中有一个文本框。 When I tried to pass a value that within the TabPanel it doesn't work. 当我尝试在TabPanel中传递值时,该值不起作用。 When I removed the panel it works. 当我卸下面板时,它可以工作。

Here the html script from 这里的html脚本来自

Parent.aspx Parent.aspx

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

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="Form1" runat="server">
  <cc1:TabContainer ID="TabContainer1" runat="server" ActiveTabIndex="0">
            <cc1:TabPanel runat="server" HeaderText="TabPanel1" ID="TabPanel1">
                <HeaderTemplate>
                    TabPanel1<asp:ScriptManager ID="ScriptManager1" runat="server">
                    </asp:ScriptManager>
                </HeaderTemplate>
                <ContentTemplate>
                     <div>

        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>

        <br />
        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
        <br />
        <asp:Button ID="button1" runat="server" OnClick="button1_Click" Text="Button" />

    </div>

                </ContentTemplate>
            </cc1:TabPanel>
            <cc1:TabPanel ID="TabPanel2" runat="server" HeaderText="TabPanel2">
            </cc1:TabPanel>
        </cc1:TabContainer>
    </form>
</body>
</html>

and here's the child and Javascript 这是孩子和Javascript

child.aspx child.aspx

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

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>

</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TextBox ID="Initialtest" runat="server"></asp:TextBox>
    <br />
        <asp:TextBox ID="Initialtest2" runat="server"></asp:TextBox>
        <br />
       <%--<input type="button" value="Select" onclick="SetName();" />--%>
        <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

    </div>
         <script type="text/javascript">
             function SetName() {

                 if (window.opener != null && !window.opener.closed) {
                     var txtName = window.opener.document.getElementById("TextBox1");
                     txtName.value = document.getElementById("Initialtest").value;
                     var txtName1 = window.opener.document.getElementById("TextBox2");
                     txtName1.value = document.getElementById("Initialtest2").value;
                 }
                 alert("test");
                 window.close();
             }
</script>


    </form>
</body>
</html>

the child.aspx.cs (code behind) child.aspx.cs(后面的代码)

public partial class Child : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {


    }





//protected void Button1_Click(object sender, EventArgs e)
//{
//   //
//   Button1.Attributes.Add("onclick", "javascript:SetName();");
//}
    protected void Button1_Click(object sender, EventArgs e)
    {
        Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "SetName()", true);
    }
}

The scenario child must pass the value to textbox1 within that TabPanel. 方案子级必须将值传递到该TabPanel中的textbox1。 Hoping that someone will help me to resolve the problem. 希望有人能帮助我解决问题。

Done, I resolved this problem. 完成,我解决了这个问题。

<script type="text/javascript">
    function SetName() {

        if (window.opener != null && !window.opener.closed) {
            var txtName = window.opener.document.getElementById("TextBox1");
            txtName.value = document.getElementById("Initialtest").value;
            var txtName1 = window.opener.document.getElementById("TextBox2");
            txtName1.value = document.getElementById("Initialtest2").value;
        }
            alert("test");
            window.close();
    }
</script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM