如何传递值从父asp.net下拉列表到文本框在弹出使用javascript
本文关键字:javascript 文本 何传递 asp 下拉列表 net | 更新日期: 2023-09-27 18:12:17
您好,我无法将父aspx表单中的下拉列表中的值传递到子aspx表单中的文本框
父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为空
你的问题很简单。只需从子页面的js函数
中替换下面的行textbox.Value = val;
textbox.value = val; // lowercase "v"
或者像这样直接赋值
document.getElementById("<%=TextBox1.ClientID%>").value = val;
或者另一个可能的解决方案是直接从parent page
传递所需的值作为querystring
值,您不需要在弹出页面中的js函数。您可以在子页面的页面加载事件中访问它的querystring值,并将其直接分配给文本框。
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"];
}
}