您好我无法将父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为空。
答案 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"];
}
}