代码之家  ›  专栏  ›  技术社区  ›  Tangiest

是否检索SharePoint网站的所有母版页?

  •  2
  • Tangiest  · 技术社区  · 16 年前

    如何以编程方式确定哪些母版页(自定义和OOTB)可用于SharePoint中的网站?

    谢谢你,MagicAndi

    2 回复  |  直到 16 年前
        1
  •  9
  •   Tangiest    16 年前

    我提出了这个解决方案,使用SPQuery对象查询团队网站集的母版页库列表:

    try
    {
        using (SPSite site = new SPSite(this.ParentSiteUrl))
        {
                using (SPWeb web = site.OpenWeb())
                {
                    SPList myList = web.Lists["Master Page Gallery"];
                    SPQuery oQuery = new SPQuery();
                    oQuery.Query = string.Format("<Where><Contains><FieldRef Name=\"FileLeafRef\" /><Value Type=\"File\">.master</Value></Contains></Where><OrderBy><FieldRef Name=\"FileLeafRef\" /></OrderBy>");
                    SPListItemCollection colListItems = myList.GetItems(oQuery);
    
                    foreach (SPListItem currentItem in colListItems)
                    {
                       // Process master pages
                    }
            }
        }
    }
    catch (Exception ex)
    {
    }
    
        2
  •  -2
  •   Wim    16 年前

    使用反射并检查类型的基类型是否等于

    System.Web.UI.MasterPage

    因此,大致如下:

    foreach(Type t in Assembly.GetExecutingAssembly().GetTypes())
    {
      if (t.BaseType==typeof(MasterPage))
      {
          // do something, add to collection - whatever
      }
    }

    推荐文章