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

List 如何将自定义列添加到现有WSS列表模板,list,sharepoint,List,Sharepoint,我需要使用功能订书机添加一些文本列到OOTB博客网站定义内的帖子列表中。我计划不使用网站栏,只将这些栏添加到列表中(我不使用网站栏,因为我有多个网站集,每个网站集只有一个帖子列表,所以在这种情况下网站栏不是很可重用)。我的问题是:我如何做到这一点 也许您可以创建一个功能,在激活该功能时,使用功能接收器中的对象模型将列添加(并根据需要删除)到特定列表中 我将使用XMLSchema方法创建列,以确保每个列具有相同的GUID 也许您可以创建一个功能,在激活该功能时,使用功能接收器中的对象模型将列添加(

我需要使用功能订书机添加一些文本列到OOTB博客网站定义内的帖子列表中。我计划不使用网站栏,只将这些栏添加到列表中(我不使用网站栏,因为我有多个网站集,每个网站集只有一个帖子列表,所以在这种情况下网站栏不是很可重用)。我的问题是:我如何做到这一点

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


我将使用XMLSchema方法创建列,以确保每个列具有相同的GUID

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


我将使用XMLSchema方法创建列,以确保每个列具有相同的GUID

最好的解决方案是为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" />

MyClass.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();
            }    
        }    
   }
[DefaultProperty(“文本”)]
[ToolboxData(“”)
公共类MyClass:网络控制
{
[可装订(真实)]
[类别(“外观”)]
[默认值(“”)
[可本地化(正确)]
公共字符串文本
{
得到
{
字符串s=(字符串)视图状态[“文本”];
返回((s==null)?字符串。空:s);
}
设置
{
ViewState[“文本”]=值;
}
}
受保护的覆盖无效加载(事件参数e)
{
SPList list=SPContext.Current.list;
如果(列表!=null)
{
列表.字段.添加(XXX,XXX,XXX);
list.Update();
}    
}    
}

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

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" />

MyClass.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();
            }    
        }    
   }
[DefaultProperty(“文本”)]
[ToolboxData(“”)
公共类MyClass:网络控制
{
[可装订(真实)]
[类别(“外观”)]
[默认值(“”)
[可本地化(正确)]
公共字符串文本
{
得到
{
字符串s=(字符串)视图状态[“文本”];
返回((s==null)?字符串。空:s);
}
设置
{
ViewState[“文本”]=值;
}
}
受保护的覆盖无效加载(事件参数e)
{
SPList list=SPContext.Current.list;
如果(列表!=null)
{
列表.字段.添加(XXX,XXX,XXX);
list.Update();
}    
}    
}

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

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

不要只使用字段。尽管添加。请确保使用特定的xml架构将GUID设置为与每个列表一致。不要只使用字段。尽管添加。确保使用特定的xml模式来设置GUID,使其与每个列表一致。