需要ASP.Net Web Forms状态管理建议

时间:2011-12-14 19:11:56

标签: asp.net webforms devexpress state-management

在VS 2010中,ASP.Net Web应用程序模板创建一个包含两个内容页面的母版页:Home和About。导航到新选项卡时状态丢失。作为一名Windows开发人员,我正在努力解决如何将页面返回到用户离开的状态。

“我的客户”选项卡允许用户过滤客户并从AspxGridView中选择一个。选定的客户ID将用于其他页面(选项卡)以显示相关的客户数据:联系人,发票,任务等。我想允许用户在他/她离开过滤器时返回到客户选项卡,排序等仍然很机智。

我知道cookie,查询字符串,查看状态&会话变量。但是,当用户导航离开时,我不知道如何从DevExpress AspxGridView捕获用户的过滤器和排序信息,我需要重新构建网格状态。

我应该将应用重新设计为包含每个标签的一个大页面吗?这将有助于维持视图状态,但它可能会失控。我的公司希望这个应用程序成为一个成熟的CRM,我不想创建一个维护噩梦。

我正在寻找有关如何在ASP.Net Web表单应用程序中跨标签/页面最佳维护状态的建议,这些应用程序可能会随着时间的推移而变得非常大。

2 个答案:

答案 0 :(得分:1)

  

但是,当用户导航离开时,我不知道如何从DevExpress AspxGridView捕获用户的过滤器和排序信息,我需要重新构建网格状态。

可以使用ASPxGridView客户端布局数据。 DX ASP.NET网格控件为此提供了特殊的基础结构:

ASPxGridView>主要特征>保存和恢复布局:

http://help.devexpress.com/#AspNet/CustomDocument4342

E2534 - 如何保存/加载ASPxGridView的ClientLayout数据并从ASPxListBox中选择它们:

http://www.devexpress.com/Support/Center/e/E2534.aspx

答案 1 :(得分:0)

与WinForms不同,网络是无状态的。 ASP.NET为您提供了一些维护页面和回发之间状态的选项。一个很好的起点是MSDN。

ASP.NET State Management Overview

How to: Pass Values Between ASP.NET Web Pages

我不熟悉AspxGridView,但大多数服务器控件使用ViewState来维护回发之间的状态。您可以首先确认controlpage和web.config上已启用ViewState。