0

我有一个带有 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")
4

1 回答 1

1

您应该能够从弹出窗口中触发父窗口中的 Javascript 方法。

例如,在您的父窗口中创建一个您想从子弹出窗口调用的函数:

function FillTextFromPopup(text){
      // populate your text here...
}

您现在可以从您的子弹出窗口调用此函数,也可以通过向您的按钮添加一些类似这样的代码来关闭您的弹出窗口:

onClick="window.opener.FillTextFromPopup('yourTextString'); window.close();"

使用这种方法,而不是直接访问父文本框,这样window.opener.document.getElementById('yourTextBox')也更干净,因为您对父文本框和可能的 ID 所做的任何更改也不必传递到子弹出窗口。

于 2013-05-30T13:15:00.033 回答