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

标签 asp.net javascript

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

当用户单击特定按钮时,我需要打开一个新的 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/

相关文章:

php - 对 PHP 脚本的 HTTP POST/GET 请求和 JSON 响应

javascript - 延迟后运行 keyup 函数

javascript - HTML5 Canvas 页面在 IE9 中挂起

c# - 输入字符串错误

asp.net - 如何使用 ASP.Net Web API 发送键列表并返回键/值列表?

c# - 我的网络服务无法登录到本地数据库

javascript - spin.js/Angular 微调器 : how to position spin into DOM element (plunker demo included)

c# - 使用 mySQL odbc 连接器从 ASP.NET 触发插入查询时,空值存储在 mySQL 表中

asp.net - "<authentication mode="中的服务器错误无"/> "

javascript - 在 jquery 对话框函数中动态调用 javascript 函数