我有一个 ASP.NET 应用程序,可以将各种视图显示到一个大型蛋白质序列数据库中。当访问者浏览数据时,我希望他们能够在 GridView 行中选择一个 CheckBox 来标记序列,以便以后下载为压缩文本文件。我不想存储选择,因此它们应该对会话有效。
我现在的想法是向 GridView 添加一个 TemplateField,然后向其中添加一个 CheckBox。我打算处理检查事件并将序列 ID 存储在会话状态中。当用户前往下载页面时,我将获取会话数据,显示他们将要下载的序列列表,然后将文件一起发送。显然,我还必须在每次表单加载/页面切换时重新解析会话数据。
所以我实际上对此有几个问题:
1)我做的工作太多了吗?有没有更简单的方法来实现这个?
2)会话状态的所有往返服务器是否可能是性能问题?我可以在页面上放置一个“保存下载”按钮来批量处理它以帮助解决问题。处理检查事件似乎更具容错性,因为如果您离开,您不会意外丢失您的状态。
3) 是否可以按复选框列对 GridView 进行排序?我想先按复选框列排序,然后是当前排序的列(例如,如果 GridView 按姓氏排序,则按复选框列排序,然后按姓氏排序)。
万一这很重要,我正在使用 C#、.NET 3.5、VS2008,并且我正在使用从 SQLServerExpress 表创建 GridView 的简单拖放方式。