如何使用javascript将值从父asp.net下拉列表传递到弹出窗口中的文本框

时间:2014-07-09 06:22:26

标签: c# javascript html asp.net

您好我无法将父aspx表单中的dropdownlist中的值传递给子aspx表单中的textbox

家长javascript :第一个脚本是打开弹出窗口

    <script type="text/javascript">
     var popup;
       function NewCustOpn() {
      popup = window.open("NewCustomer.aspx","Popup",toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=520,height=350,left = 250,top = 50");

 }
   </script>

这是父页面上第二个获取下拉列表值

的脚本
    <script type = "text/javascript">
    function parentFunc()
    {
        return document.getElementById ("<%=DropDownList1.ClientID%>").value;
    }

  </script>

子页面javascript:

      <script type = "text/javascript">
    window.onload = function ()
    {

        if(window.opener != null && !window.opener.closed)  
        {
           var val = window.opener.parentFunc();
      var textbox = document.getElementById("<%=TextBox1.ClientID%>");
           textbox.Value = val; 
        }
    }
    </script>

当弹出窗口打开时TextBox1为空。

1 个答案:

答案 0 :(得分:0)

你的问题很简单。只需从子页面的js函数替换下面的行

textbox.Value = val;

textbox.value = val; // lowercase "v"

或者像这样直接分配

document.getElementById("<%=TextBox1.ClientID%>").value = val;

或者另一种可能的解决方案是直接从parent page传递所需的值作为querystring值,并且您不需要弹出页面中的js函数。您可以在子页面的页面加载事件中访问它的查询字符串值,并将其直接分配给文本框。

您的家长js

   function NewCustOpn() {
        var ddlvalue = document.getElementById("<%=DropDownList1.ClientID%>").value;
        var popup = window.open("Popup.aspx?dropdownval=" + ddlvalue, "Popup", "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=520,height=350,left = 250,top = 50");
    }

从你孩子页面的代码背后

 protected void Page_Load(object sender, EventArgs e)
 {
     if (!string.IsNullOrEmpty(Request.QueryString["dropdownval"])) {
         TextBox1.Text = Request.QueryString["dropdownval"];
     }
 }