2008-11-10 94 views
0

我需要使用功能訂書機將一些文本列添加到OOTB博客網站定義中的帖子列表。我打算不使用網站列,但只是將這些列添加到列表中(我沒有使用網站列,因爲我有多個網站集,每個網站集只會有一個帖子列表,所以網站列不可重複使用這個案例)。我的問題是:我如何實現這一目標?如何將自定義列添加到現有的WSS列表模板

回答

2

也許你可以創建一個使用對象模型從功能接收器添加功能(並酌情刪除)列,只是具體名單,當功能被激活。

我會使用XML Schema方法創建列以確保每列的GUID相同。 See

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(); 
      }  
     }  
    } 
+0

儘管不要只使用Fields.Add。確保您使用特定的xml架構來設置GUID以使其對每個列表保持一致。 – Nat 2008-11-10 22:03:07

0

我看不出我有什麼好處,從創建自定義操作帖子列表。這兩個帖子都很有幫助,但我可能會爲此創建自定義功能。

相關問題