1

私は次のことをしようとしています:

List コントロールから ListItemCollection を取得するには、静的変数が必要です (これを行うことはできますが、それを Shared として設定しないと、必要に応じて値が保持されません)。このクラスは SharePoint Web パーツであるため、Web パーツを複数回使用する可能性が高く、この変数を各 Web パーツに一意にする必要がありますが、共有では実現できません。

私はあなたが想像できるすべてを試しました。Sub (共有され、共有されていない) 内に Static 変数を配置し、Properties (共有され、共有されていない) で試しました...

どんなアイデアでも大歓迎です。

ありがとう。

4

3 に答える 3

1

定義上、静的メンバーはクラスごと(またはThreadStatic属性を持つスレッドごと)です。

于 2010-01-28T23:24:44.177 に答える
0

私はついに別の方法に進みました。ツールパーツにいくつかのチェックボックスを追加し、Webパーツのプロパティを設定しました。

とにかく、私がやろうとしていたことは次のとおりです。

編集および参照モードでコントロールを変更するWebパーツを用意します。編集モードでは、2つのリストボックスコントロールと2つのボタン(追加、削除)が表示されます。追加ボタンをクリックすると、左側のリストボックスから値を削除して右側のリストボックスに値を追加する必要があります。これまでのところ、この機能を問題なく作成できました。参照モード右からリストボックス内のアイテムを使用して表示する必要があります(したがって、右のリストボックスからの値を格納するListItemCollectionコントロールを追加しました)、アイテムのテキストとTextBoxコントロールを使用すると、ユーザーはそのテキストボックスにテキストを入力し、[検索]ボタンを押すと、検索クエリが実行されます。

私の問題は、編集から参照に移動すると、追加したListItemCollection変数が再起動されることです。共有として宣言しましたが、それは機能しますが、WebPartの新しいインスタンスを追加すると、同じフィールドが表示されます...静的クラスレベル変数を実行する方法があるかどうかはわかりませんこれは各インスタンスに固有なので、ToolPartを使用しました...

于 2010-01-29T14:45:52.767 に答える
0

Web パーツにプロパティを保存する必要がある場合は、プロパティに WebPartStorageAttribute を追加し、そこにFriendlyNameAttributeをスローしてクリーンにします。

C# バージョン:

[FriendlyNameAttribute("What the setting will be called")]
[WebPartStorage(Storage.Shared)]
private string MyStringThatGetsSaved { get; set; }

VB.Net バージョン:

<WebPartStorage(Storage.Personal), FriendlyNameAttribute("What the setting will be called")>
Private mMyStringThatGetsSaved As String
Public Property MyStringThatGetsSaved () As String
    Get
        Return mMyStringThatGetsSaved 
    End Get
    Set(ByVal Value As String)
        mMyStringThatGetsSaved = Value
    End Set
End Property

これはあなたが求めているものですか?そうでない場合は、もう少し明確にすることができますか?

于 2010-01-28T23:14:08.810 に答える