2009-03-05 10 views
13

ho definito una proprietà booleana come segue:Sharepoint proprietà web part personalizzata non compare nella casella degli strumenti

[Browsable(true), Category("Display"), DefaultValue(false), 
    WebPartStorage(Storage.Shared), FriendlyName("Obey Workflow"), 
    Description("")] 
    public bool ObeyWorkflow { get; set; } 

mi aspetto che per il rendering come una casella di controllo nella del webpart proprietà cassetta degli attrezzi, ma esso doesn si presentano La mia web part deriva dalla classe base di Sharepoint WebPart.

risposta

21

Siete sulla strada giusta. Hai solo bisogno di usare attributi diversi.

[Personalizable(PersonalizationScope.Shared)] 
[WebBrowsable(true)] 
[Category("Display")] 
[WebDisplayName("Obey Workflow")] 
[Description("")] 
public bool ObeyWorkflow { get; set; } 
+0

Grazie. Ho passato un'intera giornata a cercare di risolvere questo problema. – kjv

1

credo che la sua WebBrowsable(true) invece di Browsable(true)

+0

ho cambiato e non ha aiutato. – kjv

5

@Jason, sei corretto. La sintassi "Browsable" e "Category" sono specifiche per SharePoint 2003. Per SharePoint 2007, sono rispettivamente "WebBrowsable" e "SPWebCategoryName".

DefaultValue (false) è anche specifico per SharePoint 2003.

L'equivalente nel 2007, per quanto ne so, è dichiarare inizialmente in anticipo, come questo:

private string _strMainFolder = "Reports"; //Here is the default value 

    [WebBrowsable(true)] 
    [WebDisplayName("SharePoint List Name")] 
    [SPWebCategoryName("SharePoint List Name Settings")] 
    [WebPartStorage(Storage.Shared)] 
    [WebDescription("You would put the description here.")] 
    [Personalizable(PersonalizationScope.Shared)] 
    public string strMainFolder 
    { 
     get { return _strMainFolder; } 
     set { _strMainFolder = value; } 
    } 
+0

buon lavoro, grazie! – Gohyu