如何将值从弹出窗口传递到父页面中的隐藏文本框。当文本框可见时,值将正确显示在主页面中。但是当我隐藏文本框时,值无法从子页面正确传递到父页面。
// main page
<telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script language="javascript" type="text/javascript">
function OpenWindow(sender, args) {
var areaName = $find("<%= txtArea.ClientID %>").get_value();
retVal = window.open("show_area.aspx?areaName=" + areaName, null, "left=150px,menubar=no, top=150px, width=800px, height=570px, scrollbars=yes, status=no, resizable=no");
retval.focus();
}
</script>
</telerik:RadCodeBlock>
<table>
<tr>
<td> Area Name: </td>
<td>
<telerik:RadTextBox ID="txtArea" runat="server"></telerik:RadTextBox>
</td>
<td>
<telerik:RadButton ID="btnsearch" Text="Search" runat="server" AutoPostBack="false" OnClientClicked="OpenWindow" > </telerik:RadButton>
<telerik:RadTextBox ID="txtAeraId" runat="server" />
</td>
</tr>
</table>
弹出页面
// pop up page
<script language="javascript" type="text/javascript">
function LinkToMainWindow(a, b) {
try {
debugger;
window.opener.document.getElementById('ctl00_UserContentPlaceHolder_txtAeraId').value = a;
window.opener.document.getElementById('ctl00_UserContentPlaceHolder_txtArea').value = b;
}
catch (e) { }
self.close();
}
</script>
/// code behind logic /////
if (e.CommandName == "select_area")
{
ClientScript.RegisterStartupScript
(typeof(Page), "FillAddress", "<script language=JavaScript>LinkToMainWindow('" + area_code + "','" + area_name + "');</script>");
}
上面的代码工作正常。我得到了正确的txtArea&amp;值;从弹出窗口中选择txtAeraId。
当我将“txtAeraId”设为visible =“false”时,会出现问题,这些值不会从子页面传递到父页面。我无法将弹出页面中的选定值从主页面的txtArea和txtAeraId中获取。
<telerik:RadTextBox ID="txtAeraId" runat="server" Visible="false" />
我尝试调试javascript函数 LinkToMainWindow ,它运行正常。但是在主页面中未正确检索值txtArea和txtAeraId。 为什么会这样?
答案 0 :(得分:1)
尝试删除visible = false并使用包含元素隐藏元素,该元素使用(内联)CSS隐藏
<div style="display:none;">
<telerik:RadTextBox ID="txtAeraId" runat="server" Visible="false" />
</div>