SharePoint中是否有某种方法可以基于每个用户更改文档库视图?

时间:2009-12-02 17:11:19

标签: sharepoint wss sharepoint-2007 wss-3.0

我们正在使用WSS 3.0,并且我被要求查看用户是否可以基于每个用户设置默认视图。是否有人知道任何方法(编程或通过GUI本身)使用户能够基于每个用户更改默认视图?在行政菜单中进行了30分钟的谷歌搜索和探索,结果证明是无用的。如果没有,这是MOSS 2007的特色吗?

2 个答案:

答案 0 :(得分:1)

您可能希望了解MOSS 2007中的功能受众群体 不幸的是,它在WSS 3.0中不可用

这是一个合理的概述。 User Profiles and Audience Targeting in SharePoint 2007

答案 1 :(得分:1)

如果您正在使用WSS 3.0,则可以使用获取ListViewWebPart并动态修改查询或视图的webpart以编程方式切换或修改视图。以下是我用来过滤任何给定视图内容的示例代码:

    private ListViewWebPart GetListViewWebPart()
    {
        ListViewWebPart webPart = new ListViewWebPart();

        foreach (WebPart wp in WebPartManager.WebParts)
        {
            if (wp.GetType() == typeof(ListViewWebPart))
            {
                webPart = (ListViewWebPart)wp;
            }
        }
        return webPart;
    }


    private void ApplyStrategySecurity(string camlFilter)
    {
        // Get the listview webpart
        ListViewWebPart wp = GetListViewWebPart();

        // Apply the query to the listview
        XmlDocument doc = new XmlDocument();
        doc.LoadXml(wp.ListViewXml);
        if (camlFilter.Length > 0)
        {
            XmlNode queryNode = doc.SelectSingleNode("//Query");
            XmlNode whereNode = queryNode.SelectSingleNode("Where");
            if (whereNode != null)
                queryNode.RemoveChild(whereNode);
            XmlNode newNode = doc.CreateNode(XmlNodeType.Element, "Where", string.Empty);
            newNode.InnerXml = camlFilter;
            queryNode.AppendChild(newNode);
        }
        wp.ListViewXml = doc.OuterXml;
    }