2012-01-24 9 views
0

ツールプロパティにカスタムプロパティを追加しようとしています。私は必要に応じてテキストボックスを追加することができました。私は値を入力してwebpartに表示することができました。Sharepoint Toolpartが取得されない値

問題はWebパーツを編集するときです。パネルがポップアップしますが、追加したコントロールに以前に入力した値が入力されません。下記を参照してください:私は書かれたとおりに指示on this websiteに従っている

Why doesn't this work? :(

- 私自身も多くの経験を積んだSharepointの開発者の同僚でもないが、ここで何が起こっているかを把握することができます。

SyncChanges()メソッドをオーバーライドすると、これが可能になると考えました。実装が正しくない場合を除き、そうではないようです。

public override void SyncChanges() 
    { 
     DemoWebPart wp = (DemoWebPart)this.ParentToolPane.SelectedWebPart; 
     urls.Text = wp.ListValue; 
    } 

は、我々は無駄に、以下でDemoWebPart.csクラスのURLのプロパティをも接頭辞いる:

[Browsable(true), Category("Miscellaneous"), 
    DefaultValue("Site Names"), 
    WebPartStorage(Storage.Shared/Personal/None), 
    FriendlyName("URLs"), Description("Text Property")] 

(Storage.Shared、Storage.Personal、およびStorage.Noneを試してみました)。

ご提供いただけるご支援は、事前に感謝します。

答えて

1

これは、私は一般的に、このような性質のために使用するコードです:

[Personalizable(PersonalizationScope.Shared)] 
[WebBrowsable(true)] 
[System.ComponentModel.Category("Custom")] 
[WebDisplayName("DisplayNameGoesHere")] 
[WebDescription("Type the description of this web property here.")] 
public string MyProperty{ get; set; } 

私はそれで何か問題があったことがありません。

+0

はこれを試してみました...今、それはもはや私がWebパーツに表示するテキストボックスに入力する内容節約... – splatto

+0

一時的に彼らがお互いに矛盾していないことを確認するためにあなたがOPに投稿したものすべてをクリアしてください。 (特に同期が変わります。) – Servy

1

のみ使用Webパーツのパーソナル化が中央管理者にenbaledされている場合、次のされていない場合は

Personalizable(PersonalizationScope.Shared) 

は、完全にパーソナライズ属性を削除します。その属性を削除し、これを使用し、それに虚偽またはnoneに入れないでください:

WebPartStorage(Storage.Shared) 
関連する問題