【问题标题】:Knowing what checkboxes were checked on a separate page知道在单独的页面上检查了哪些复选框
【发布时间】:2013-02-27 18:33:01
【问题描述】:

我是一个完整的 ASP 新手,致力于通过 WinForms 应用进行转换。

在我的 Winforms 版本中,我有一个主窗体,它从用户那里获取输入,并有一个按钮 Select OutPut Columns

当用户单击该按钮时,会弹出第二个表单,其中包含一个复选框列表,该列表根据用户在其输出报告中可用的所有列的数据库查询动态填充。

一旦用户在报告中检查了他们想要的所有列,他们单击Done 按钮,该按钮在主窗体上设置List(of String) 属性并选择列,因此程序可以继续生成报告。

我正在尝试在我的 ASP 项目中模拟相同类型的功能 - 根据我所阅读的内容,SessionCache 对象似乎是实现此目的的方法 - 我的问题是:

  1. 这些是获取/存储这些数据的正确方法吗?
  2. 鉴于此,我应该使用哪一个(会话/缓存):

    (a) 用户可以再次单击该按钮,我希望程序记住他们已经选择了哪些列。

    (b) 不同的用户可能会选择不同的列(由于这个原因,缓存在这里可能无法正常工作 - 我说的对吗?)

  3. 只要应用程序在用户的机器上运行,我希望变量持续存在,但如果用户关闭/重新打开应用程序,我希望它不要记住他们之前的选择。

真的,正如我所说,我是一个完整的 ASP 新手,并且愿意学习任何新的/有用的东西 - 任何好的想法/cmets/链接都将是 !! 非常好!!感激不尽!

谢谢!!

编辑:

另外一个问题,如果使用 Session / Cache,在应用程序启动时删除这些变量以确保新数据是司空见惯的,还是通常不这样做?

【问题讨论】:

    标签: c# asp.net .net vb.net


    【解决方案1】:

    您想使用Session 对象。每个用户都不同,它会在一段时间没有看到用户后过期(实际过期时间和行为是可配置的)。会话作为 cookie 标识符存储在用户的网络浏览器中。如果用户关闭浏览器,cookie 将被删除,并且他们将在下次连接到 Web 服务器时获得一个新会话。旧会话最终会超时。

    【讨论】:

    • 这在大多数情况下都有效,除了问题 3。如果用户在会话过期之前打开重新访问 Web 应用程序,数据仍然存在。
    • 已更新以解决问题的第 3 部分。
    • 一般来说,让我的程序在重新加载主页时(在应用程序启动时)删除过去的会话变量是可行的,还是通常不这样做?
    • 对于开箱即用的默认配置,SessionStateProvider 设置为使用 InProc 会话,这意味着会话值仅保存到内存中。当您停止 IIS 并重新启动它时,它会在没有用户会话的情况下启动。所以,不,您不必在应用程序启动时清除会话。
    • 非常感谢您提供的信息,@Charlie! - 它仍然感觉如此压倒一切,但它正在慢慢开始融合在一起。我最终选择了 Aristos 的解决方案,只是因为在特定情况下将所有控件保留在一个页面上并根据需要显示/隐藏而不是弹出一个新页面更有意义,但我真的不能感谢你足够你的时间和投入来做一些对未来情况更有帮助的事情!
    【解决方案2】:

    在我的 Winforms 版本中,我有一个主窗体,它从 用户并有一个按钮 Select OutPut Columns。

    当用户单击该按钮时,会弹出第二个表单,其中包含 根据数据库查询动态填充的复选框列表 用户可以在他们的 输出报告。

    这是windorms上的方式,现在如果你做一个网页界面更好地像网页一样工作,最简单的方式1 - 那是什么?避免弹出窗口,并使用发布到下一页(或同一页)。

    所以你有一个页面,用户选择一些东西,在服务器上发布,在同一页面上创建复选框并等待第二个用户输入。在最终输入之后,再次向同一页面发布帖子,现在您在页面中拥有所有用户输入以进行输出

    没有对话框,没有其他记忆,帖子在同一页面上完成,帖子保留用户输入。

    1(不是 jQuery 对话框和 ajax 调用开始)

    【讨论】:

    • Hmmmmmm @Aristos,我不得不说这很有道理......我需要一段时间才能弄清楚格式化它的方法(可能隐藏/显示Div标签),但这确实很有意义! - 谢谢!!
    • @JohnBus​​tos 如果您想隐藏/显示,那么使用 asp:Panel 就是出于这个原因。在 asp:Panel 中放置所有输入。
    • 非常感谢@Aristos,我对您的回答进行的讨论越多,以这种方式做事并摆脱 WinForms 思维方式的意义就越大!谢谢!!
    猜你喜欢
    • 2017-08-17
    • 1970-01-01
    • 2013-06-14
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多