gpt4 book ai didi

asp.net - 如何在另一个打开的aspx页面中设置控件值

转载 作者:行者123 更新时间:2023-11-30 18:59:08 27 4
gpt4 key购买 nike

我的问题很简单,但我找不到解决它的方法:(

当用户单击特定按钮时,我需要打开一个新的 aspx 页面(在新窗口中),以便他能够选择需要返回到原始页面的内容。我能够使用 window.open 打开新页面,但是,我无法将所选值设置回原始页面。

总而言之,输入字段需要从打开的页面接收字符串值。我试过 window.opener.getElementById() ,但 ASP.NET 会混淆控件的 ID,因此我无法在运行时确定输入字段的正确 ID。

是否有更简单的方法来仅使用服务器端代码(打开页面并返回值)而不是使用 JavaScript 和 window.opener(在我看来这很糟糕)?

如果没有,也欢迎任何其他简单的解决方案!

最佳答案

如果你使用类似 jquery 的东西, 顺便说一句,强烈建议不要使用基本的 DOM 函数,你可以试试这个:

window.opener.$("[id$=txtValue]").val(valueToSet);

应该执行以下操作:

  • window.opener.$如果从opener窗口查询函数
  • ("[id$=something]") 是一个选择器,它选择所有具有以“txtValue”结尾的“id”属性的元素(这就是解决难看的 Id 问题的原因)。
  • .val("some value") 将该输入字段的值设置为“some value”。

我不建议在 javascript 代码中硬编码 asp.net ID。由于某种原因,该 ID 总是在将来的某个时候发生变化,您的页面将会中断。更不用说它很丑了:)

此外,虽然 window.opener 解决方案有其缺点,但在服务器端执行此操作通常会导致更糟糕的事情,例如使用 Session 在页面之间传递数据或在页面(父或子)之间的竞争条件) 先回发。

关于asp.net - 如何在另一个打开的aspx页面中设置控件值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478202/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com