在下面的代码中,我有一个父窗口,其中有一个数据网格内的下拉列表和链接按钮。当我点击链接按钮打开一个子弹出窗口,我在其中选择一个员工ID并存储一个隐藏值并传递id到父窗口并在dropdown中绑定。但是我无法传递价值,任何人都可以帮我解决问题。
家长
function ShowPopUp() {
var sFeatures = "dialogHeight: 400px;";
var myWindow = window.open("/Trans/Quote.aspx", "Quote",
"width=900, height=200", sFeatures);
window.document.getElementById("<%= btnHiddenForUpdate.ClientID%>").click();
}
function setValue(myVal) {
alert(myVal);
document.getElementById("<%=ddlEMP.ClientID%>").value = myVal;
}
<asp:DropDownList ID="ddlEMP" runat="server"
CssClass="cbSupplierName" EnableViewState="True" Width="25%" >
</asp:DropDownList>
<ItemTemplate>
<asp:LinkButton ID="lnkQuote" runat="server" CommandName="Quote" Text="Quote" />
</ItemTemplate>
代码隐藏:
ScriptManager.RegisterStartupScript(this, GetType(), "ShowPopUp", "ShowPopUp()", true)
;
子:
function updateParent() {
var oVal = document.getElementById("<%=hid.ClientID%>").value;
window.opener.setValue(oVal);
window.close();
return false;
}
<input type="hidden" id="hid" runat="server" />
答案 0 :(得分:0)
我尝试了这个最小的代码来重现你的问题,但似乎在我的最后工作。
这是我的父窗口:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function ShowPopUp() {
var sFeatures = "dialogHeight: 400px;";
var myWindow = window.open("Default2.aspx", "Quote",
"width=900, height=200", sFeatures);
}
function setValue(myVal) {
alert(myVal);
document.getElementById("<%=ddlEMP.ClientID%>").value = myVal;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlEMP" runat="server"
CssClass="cbSupplierName" EnableViewState="True" Width="25%">
<asp:ListItem Text="testing1" Value="testing1" />
<asp:ListItem Text="testing" Value="testing" />
</asp:DropDownList>
<asp:Button Text="text" runat="server" ID="btnTest" OnClick="btnTest_Click" />
</div>
</form>
</body>
</html>
在我打开页面的代码背后:
protected void btnTest_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(this, GetType(), "ShowPopUp", "ShowPopUp()", true);
}
和子窗口:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript">
function updateParent() {
debugger;
document.getElementById("<%=hid.ClientID%>").value = "testing";
oVal = document.getElementById("<%=hid.ClientID%>").value;
window.opener.setValue(oVal);
window.close();
return false;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button Text="text" runat="server" ID="btnTest" OnClientClick="return updateParent()" />
<input type="hidden" id="hid" runat="server" />
</div>
</form>
</body>
</html>
我建议写一个最小的代码,看看是什么原因造成了问题。 希望它有所帮助./.