持久保存页面之间的值/变量

时间:2010-04-07 15:02:00

标签: sharepoint dynamic-data global-variables

我想知道我的问题是否有另一种解决方案,这被认为是更多的Sharepoint方式。首先,我的网站是一个Internet站点,而不是Intranet。问题是,我所要做的就是在Sharepoint中保存页面之间的值/变量。我知道会话变量的问题,但这似乎是我能看到实现这一目标的唯一方法。我知道有一些webpart可以存储这个值,但我认为这不会在页面之间保持不变吗?

基本上,我将扩展内容查询Web部件,以根据变量/值动态过滤其结果。用户从下拉列表中选择他们的“区域”,站点中的CQWP将根据此值更改并查询结果(这将是省级结构,因为它是加拿大站点,因此如果有人选择省'安大略省' ,此值保存在全局变量中,整个站点中的这些扩展CQWP将获得此值,并且查询列表标记为Ontario)。

会话变量是唯一的解决方案吗?

谢谢大家!

4 个答案:

答案 0 :(得分:0)

会话变量不是唯一的解决方案。您也可以使用浏览器Cookie。

不一定是“SharePoint Way”,但它是一种选择。

答案 1 :(得分:0)

SharePoint方式可能是在用户配置文件中使用某些内容,当然这对于匿名网站来说并不合适。不要过于担心超出SharePoint的做事方式 - 使用互联网站点几乎是不可避免的。

如果您只需要存储一个值,我建议使用cookie而不是会话变量 - 从客户端或服务器代码中使用简单,并且不会出现会话中的潜在存储问题。

答案 2 :(得分:0)

您始终可以使用数据库来保留此类数据。不在SharePoint场方案中解决会话问题。

答案 3 :(得分:0)

您可以在网络或网络应用程序级别读取或写入或删除持久性键/值,请查看SPWeb.Properties Property

string strKey = "YourKey";
string strValue = "YourValue";

if (web.Properties.ContainsKey(strKey))
    // if property exists then update it
    web.Properties[strKey] = strValue;
else
    // if property doesn't exist then add it
    web.Properties.Add(strKey, strValue);

web.Properties.Update();