将值从弹出窗口传递到主窗体

时间:2013-05-30 12:48:49

标签: asp.net

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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

使用此方法,而不是直接访问父级的文本框,例如window.opener.document.getElementById('yourTextBox')也更清晰,因为您对父级文本框所做的任何更改和可能的ID都不必传递给子级弹出窗口。

相关问题