0

ツールパーツにカスタムプロパティを追加したいと考えています。必要に応じてテキストボックスを追加できました。値を入力してWebパーツに表示することができました。

問題は、Webパーツを編集するときです。パネルはポップアップしますが、追加したコントロールには以前に入力した値が入力されていません。下記参照:

なぜこれが機能しないのですか? :(

私はこのWebサイトの指示に正確に準拠しています。私自身も、経験豊富なSharepoint開発者の同僚も、ここで何が起こっているのかを理解することはできません。

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

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

また、DemoWebPart.csクラスのurlsプロパティの前に次のプレフィックスを付けましたが、役に立ちません。

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

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

あなたが提供できるどんな助けでも大いに感謝されるでしょう-事前に感謝します!

4

3 に答える 3

1

Webパーツのパーソナライズが中央管理で禁止されている場合にのみ、以下を使用してください。

Personalizable(PersonalizationScope.Shared)

そうでない場合は、Personalizable属性を完全に削除します。falseまたはnoneを入れないでください。その属性を削除して、次を使用してください。

WebPartStorage(Storage.Shared)
于 2012-10-26T17:34:21.953 に答える
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; }

私はそれで問題を抱えたことはありません。

于 2012-01-24T15:39:28.357 に答える
0

提案 :

  1. 新しい WP を作成する
  2. この記事を使用してくださいhttp://snahta.blogspot.com/2009/11/webpart-custom-properties.html

私はこれを何百回も使用しました。試してみてください。うまくいきます。

ありがとうサンディープ

于 2012-01-25T05:25:17.210 に答える