2

我试图用尽可能少的步骤来描述它:我有Page1.aspx有很多控件,其中包括预览和保存按钮。我也有Page2.aspx,它是预览按钮单击的重定向目标。

由于我需要从 Page1 中选择所有控件才能在 Page2 上绘制预览,因此重定向是通过设置 Preview's 来完成的PostBackUrl。我还必须在新选项卡或窗口上显示预览,因此我用于onClientClick="aspnetForm.target='_blank'"预览按钮定义。

保存按钮单击回调,在将数据存储到数据库后重定向到一些 Page0.aspx(报告的初始列表 - 代码的主题)

预览按钮工作正常 - 预览在新选项卡中呈现,但是当我转到旧选项卡并单击保存时,我从调试器中看到,首先加载了 Page2.aspx(?),然后加载了 Page1.aspx。然后所有数据都存储在数据库中,但是尽管执行了 Page0 重定向,但 Page1.aspx 仍然加载在浏览器中。

我不知道这背后是什么过程。有知道的可以给我介绍一下吗?或者,如果您认为我的方法无法实施,请给出一些想法如何做同样的事情?

如果它很重要,那么 Page1 上的所有内容都位于更新面板中。

非常感谢您的回复

4

1 回答 1

2

在 ASP.NET 中,基本上有零 (0) 种情况,您将表单数据从一个页面发送到另一个页面。尽管您想要完成的具体内容含糊不清,但您可以考虑以下几点:

  • 将独特的操作/系统隔离到单个页面。如果你有类似用户配置文件的东西,不要有三个不同的 aspx 页面;只需为用户或管理员使用一个页面来管理该数据/功能。回发事件是您的朋友。
  • 了解 ViewState 与传统表单数据的区别。我猜如果您尝试将表单数据从一个页面发布到另一个页面,您可能不理解 ViewState 的意义。使用单个页面来维护用户当前正在使用的临时数据是 ViewState 的一大用途。如果您希望数据出现在另一页上,则需要将上一页中的数据视为最终数据,因此应将其保存到数据库或其他介质中。

这些只是一些一般性的指导方针,因为如果不说“你做错了”之类的一般性的话,就没有确切的答案来解决你的问题。我建议从不再尝试将表单数据从一个 aspx 页面发布到另一个页面开始。

于 2012-11-06T08:50:39.317 回答