ASP.NET& Javascript:将值从一个窗口设置为另一个窗口

时间:2011-07-20 15:31:29

标签: javascript asp.net parent window.opener

我有一个从父应用程序打开的子浏览器窗口(aspx)。子窗口有一些控件和一个文本框。当用户完成时,他/她单击一个按钮,以下代码从子窗口获取值并填充父级,如下所示:

window.opener.document.form1.InputContainer$LetterInput$txtReasons.value = txtVal;

这适用于我在父页面上的文本框。但现在,我需要填充一个列表框,并没有太多运气。我尝试过这两种方法,但无济于事:

o.text = txtVal;
o.value = "1";
window.opener.document.form1.InputContainer$LetterInput$lstReasons.add(o);

window.opener.document.form1.InputContainer$LetterInput$lstReasons.add("Text", "Value");

我得到了“htmlfile:不支持这样的接口”。

有人有什么想法吗?

谢谢,

杰森

2 个答案:

答案 0 :(得分:0)

var newOption = document.createElement('option');
newOption.value = textbox.value; // The value that this option will have
newOption.innerHTML = textbox.value; // The displayed text inside of the <option> tags

// Finally, add the new option to the listbox
window.opener.document.form1.InputContainer$LetterInput$lstReasons.appendChild(newOption);

答案 1 :(得分:0)

好的,稍作修改但找到了解决办法!

首先,在父aspx中创建一个函数,如下所示:

function NewOption(newVal)
{
//alert("The entry is: " + newVal);
var sel = document.getElementById("<%= MyListbox.clientID %>");
sel.options[sel.options.length]=new Option(newVal, newVal, true, true);    
}

然后,从子页面调用该函数,如下所示:

function SendValues()
{
var txtVal = document.form1.txtReasons.value;
var sel = window.opener.NewOption(txtVal);
}

还有一两个扭结(它只传递文本,而不是值),但可以通过添加额外参数轻松修复...

希望那里的其他人可以使用它!