ASP.NET 和Javascript:将值从一个窗口设置到另一个窗口

发布于 2024-11-25 12:33:32 字数 560 浏览 0 评论 0原文

我有一个从父应用程序打开的子浏览器窗口(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:不支持这样的接口”。

有人有什么想法吗?

谢谢,

杰森

I have a child browser window (aspx) opened from the parent application. The child window has some controls, and a textbox. When the user is finished, s/he clicks a button and the following code takes the value from the child window and populates the parent, like so:

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

This works great for the textbox I have on the parent page. But now, I need to populate a listbox and am not having much luck. I've tried these two methods but to no avail:

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");

I get "htmlfile: No such interface supported" with both.

Anybody have any ideas?

Thanks,

Jason

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

葵雨 2024-12-02 12:33:32
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);
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);
五里雾 2024-12-02 12:33:32

好吧,做了一些修改,但找到了解决方案!

首先,在父 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);
}

仍然存在一两个问题(它只传递文本,而不传递值),但可以通过以下方式轻松修复:添加额外的参数...

希望其他人可以使用它!

Okay, took a little reworking but found a solution!

First off, create a function in the parent aspx like this:

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);    
}

Then, call that function from the child page like this:

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

There's still a kink or two (it only passes the text, not the value) but it that can be easily fixed by adding an extra parameter...

Hopefully someone else out there can use it!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文