我有一个带有gridview的弹出窗口,我想在父窗体上填充一个文本框,其中包含所选行/列中的文本。我在下面使用的代码有效,但它使用父窗体刷新弹出窗口,并在弹出窗口中填充文本框。有没有办法在按下“选择”时关闭弹出窗口并将文本添加到父窗体上的文本框中?
<asp:HyperLinkField DataNavigateUrlFields="ID, ProductCode, Item, RetailCost" HeaderText="Select"
DataNavigateUrlFormatString="Default.aspx?ID={0}&ProductCode={1}&Item={2}&RetailCost={3}"
Text="Select" />
ProductTextBox.Text = Request.QueryString("Item")
答案 0 :(得分:1)
您应该能够从弹出窗口中在父窗口中触发Javascript方法。
例如,在父窗口中创建一个要从子弹出窗口调用的函数:
function FillTextFromPopup(text){
// populate your text here...
}
您现在可以通过子弹出窗口调用此函数,并通过向您的按钮添加这样的代码来关闭弹出窗口:
onClick="window.opener.FillTextFromPopup('yourTextString'); window.close();"
使用此方法,而不是直接访问父级的文本框,例如window.opener.document.getElementById('yourTextBox')
也更清晰,因为您对父级文本框所做的任何更改和可能的ID都不必传递给子级弹出窗口。