我需要使用功能订书机将一些文本列添加到OOTB博客网站定义中的帖子列表中。我打算不使用网站列,但只是将这些列添加到列表中(我不使用网站列,因为我有多个网站集,每个网站集只有一个帖子列表,因此网站列不是非常可重复使用这个案例)。我的问题是:我如何实现这一目标?
答案 0 :(得分:2)
也许您可以创建一个功能,使用功能接收器中的对象模型在激活功能时将列添加(并根据需要删除)到特定列表。
我会使用XML Schema方法创建列,以确保每列的GUID相同。 See
答案 1 :(得分:2)
最佳解决方案是为帖子列表创建隐藏的自定义操作。我在这里发布简化版
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();
}
}
}
答案 2 :(得分:0)
我无法看到为帖子列表创建自定义操作有什么好处。这两篇文章都很有帮助,但我可能会为此创建自定义功能。