【问题标题】:Customizing pages view in Sharepoint在 Sharepoint 中自定义页面视图
【发布时间】:2009-04-22 21:10:05
【问题描述】:

我正在自定义页面文档库中显示的字段(点击站点操作->所有站点内容->页面显示的表格)。

有人比我更了解 sharepoint 建议我应该在激活功能时以编程方式从默认视图中删除我不想要的字段,所以我编写了这段代码,感觉就像一个非常不雅的解决方案,也不起作用。

SPWeb web = properties.Feature.Parent as SPWeb;

        if (web != null)
        {
            SPList list = web.Lists["Pages"] as SPList;
            if (list != null)
            {
                foreach (SPField field in list.Fields)
                {
                    if (field.Title != "Type" &&
                        field.Title != "Name" &&
                        field.Title != "Modified" &&
                        field.Title != "Checked Out To" &&
                        field.Title != "Page Layout")
                    {
                        if (list.DefaultView.ViewFields.Exists(field.InternalName))
                        {
                            list.DefaultView.ViewFields.Delete(field);                                
                        }
                    }
                }

                list.DefaultView.Update();
            }
        }
    }

代码肯定会在激活该功能时执行,所以我显然做错了什么。我已经寻找解决方案,所以如果我在谷歌或这个网站上遗漏了一些非常明显的东西,我深表歉意。

【问题讨论】:

    标签: sharepoint wss


    【解决方案1】:

    这是因为对 list.DefaultView.ViewFields 的更改超出了范围。在调用 Update() 之前,正在从数据库中刷新集合。 试试:

    if (list != null)
    {
        SPView view = list.DefaultView;
    
        foreach (SPField field in list.Fields)
        {
            if (field.Title != "Type" &&
                ...
                field.Title != "Page Layout")
            {
                if (view.ViewFields.Exists(field.InternalName))
                {
                    view.ViewFields.Delete(field);                                
                }
            }
        }
    
        view.Update();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 2014-09-20
      • 2013-09-28
      • 2015-09-26
      • 2017-10-29
      • 2011-07-14
      相关资源
      最近更新 更多