在我的asp.net网络应用程序中,我创建了一个带按钮的弹出窗口。单击该按钮时,我想设置父窗口中包含的asp:TextBox(id = TextBox1)的值。但是,它并不像我读过的所有例子那样有效。
我在javascript onclick处理程序中尝试了以下几行代码:
只有示例3有效。我读过的所有内容都表明#1是首选的方法,但我似乎无法使其完全正常工作。有没有人有任何想法我做错了什么?
我在Firefox,Chrome和IE中试过这个。
由于
答案 0 :(得分:4)
弹出窗口本身的标记中是否包含这一行JavaScript?如果是这样,服务器端代码将不会意识到父窗口的服务器端代码上存在TextBox1,并且无法确定其ClientID属性。您需要以某种方式将该客户端ID传递给弹出窗口(查询字符串,cookie,会话,等等)或硬编码。或者,您可以将这行JavaScript放在父页面上的函数中,然后调用window.opener.functionName()中的某些内容。
答案 1 :(得分:4)
在调用弹出代码时需要更改一下,你必须传递文本框客户端ID,然后你可以从弹出页面设置它的值而无需任何硬编码。 这是方法:
var txtNameClientObject = '<%= txtName.ClientID %>';
window.open('Child.aspx?txtName='+txtNameClientObject);
然后在弹出页面中,您可以将其作为
opener.document.getElementById('<%= Request["txtName"] %>').value = 'from child';
希望这对你有所帮助。
谢谢