代码之家  ›  专栏  ›  技术社区  ›  Dragan Panjkov

如何将自定义列添加到现有WSS列表模板

  •  0
  • Dragan Panjkov  · 技术社区  · 17 年前

    我需要使用功能订书机添加一些文本列到OOTB博客网站定义内的文章列表。我计划不使用网站列,而只将这些列添加到列表中(我不使用网站列,因为我有多个网站集,并且每个网站集只有一个帖子列表,因此在这种情况下,网站列不太可重用)。我的问题是:我怎样才能做到这一点?

    3 回复  |  直到 10 年前
        1
  •  2
  •   Nat    17 年前

    也许您可以创建一个特性,它使用特性接收器中的对象模型在特性激活时向特定列表添加(并根据需要删除)列。

    我将使用XML Schema方法创建列,以确保每个列的GUID相同。 See

        2
  •  2
  •   Ganesha    17 年前

    最好的解决方案是为Posts列表创建一个隐藏的自定义操作。我在这里发布了一个简化版本

    Elements.xml:元素:

    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <CustomAction Id="XXXXXXXX"
       RegistrationType="List"
       RegistrationId="101"
       Rights="Open"
       Location="ViewToolbar"
       Sequence="110"
       Title="Hidden Settings Button"
       ControlAssembly="MyLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=XXXXXX"
           ControlClass="MyLib.MyClass"
       />
    
        <FeatureSiteTemplateAssociation Id="XXXXXXX" TemplateName="YOUR_BLOG_SITE_TEMPLATE_NAME" />
    

    我的类.cs:

      [DefaultProperty("Text")]
      [ToolboxData("<{0}:MyClass runat=server></{0}:MyClass>")]
      public class MyClass : WebControl
      {
            [Bindable(true)]
            [Category("Appearance")]
            [DefaultValue("")]
            [Localizable(true)]
            public string Text
            {
                get
                {
                    String s = (String)ViewState["Text"];
                    return ((s == null) ? String.Empty : s);
                }
    
                set
                {
                    ViewState["Text"] = value;
                }
            }
    
            protected override void OnLoad(EventArgs e)
            {
                SPList list = SPContext.Current.List;
                if (list != null)
                {
                     list.Fields.Add(XXX, XXX, XXX);
                     list.Update();
                }    
            }    
       }
    
        3
  •  0
  •   Dragan Panjkov    17 年前

    我看不出为posts列表创建自定义操作有什么好处。这两篇文章都很有用,但我可能会为此创建自定义功能。