例如,我有一个带有过滤器输入的列表页面,用户可以从该页面导航到捕获页面,在返回到列表页面之前,他们可能会在那里花费一些时间进行捕获。当他们返回到列表页面时,我希望再次自动应用他们之前的过滤器。
这不是一个火箭科学问题,所以我确信已经有了无数的解决方案,但我希望在这里得到一些答案,以启发我解决这个问题的常用模式。我的直接想法是为页面‘pre-set’创建一个会话对象,每个页面有一个字典。如果存储在比会话更长的地方,这也可以扩展到更长期的预设。
发布于 2009-07-23 20:35:43
我在一个实用程序类中有一些辅助函数,我在其中传递要保存或加载到会话中的控件。通常,我会在初始页面加载时调用load,并在用户执行搜索或我想保存的时候调用save函数。
我为要保存到会话中的每种控件创建了一个新的重载。这里有一个用于TextBox的。我不确定这是不是非常好的代码,但它似乎工作得相当好。
public void SaveToSession(TextBox control, HttpSessionState session, string SectionKey)
{
session[SectionKey + control.ID] = control.Text;
}
public string LoadFromSession(TextBox control, HttpSessionState session, string SectionKey, string DefaultValue)
{
string ReturnValue = "";
if (session[SectionKey + control.ID] != null)
{
control.Text = session[SectionKey + control.ID].ToString();
ReturnValue = session[SectionKey + control.ID].ToString();
}
else
{
control.Text = DefaultValue;
ReturnValue = DefaultValue;
}
return ReturnValue;
}https://stackoverflow.com/questions/1170977
复制相似问题