代码之家  ›  专栏  ›  技术社区  ›  JL. Hans Passant

SharePoint:如何引用本地化列表?

  •  0
  • JL. Hans Passant  · 技术社区  · 15 年前

    我有一个通过功能安装的SharePoint列表。

    我需要在功能接收器中启用我这样做的内容类型:

    SPList list = site.Lists["NameOfList"];
    list.ContentTypesEnabled = true;
    list.Update();
    

    问题是,它似乎是方法:site.lists[“nameoflist”],实际上是在看标题而不是ID。

    如何使用ID而不是由于本地化而可能更改的标题来获取列表…

     <ListInstance
        TemplateType="10051" 
        Id="ThisISTheIDField"  //Want to retrieve list instance based on this field.
        Title="$Resources:MyFile,MyResourceName;"
        Url="Lists/URLOFList"
        OnQuickLaunch="TRUE">
      </ListInstance>
    

    事先谢谢。为写这篇内部文章的微软SharePoint开发人员,我敢说-C.R.A.P.欢呼了10年。

    3 回复  |  直到 15 年前
        1
  •  2
  •   ArjanP    15 年前

    所以你的列表是自定义列表,对吗?

    您可以添加:

    EnableContentTypes=TRUE 
    

    到您的列表定义,您将不需要该功能?

    见: List Element

        2
  •  1
  •   Francisco Aquino    15 年前

    没有网站。列表(可能是spweb?我知道,这个名字很难听)

    <SPWeb Instance>.Lists.GetList(Guid uniqueId, bool bFetchMetadata)
    <SPWeb Instance>.Lists.GetList(Guid uniqueId, bool bFetchMetadata, bool bFetchSecurityData)
    <SPWeb Instance>.GetList(string strUrl)
    

    第三个选项可以组合URL并使用内部名称来获取它(在URL列表中通过内部名称访问)。

        3
  •  0
  •   naivists    15 年前

    如果一辈子只能完成一次操作,我建议通过.lists集合循环,并检查basetemplate是否匹配:

    For Each oList In web.Lists
        If (list1.BaseTemplate = 10051) Then
             oList.ContentTypesEnabled=True
        End If
    Next