我正在尝试执行以下操作:
我需要一个静态变量来从List控件获取ListItemCollection(我可以这样做,但是如果我没有将它设置为Shared它不会保留它应该的值)。问题是这个类是一个SharePoint webpart,所以我很可能不止一次使用webpart,而且我需要这个变量对每个webpart都是唯一的,共享无法完成。
我尝试了你能想象到的一切。我在Sub(共享而非共享)中放置了一个静态变量,我尝试使用Properties(也是共享而不是共享)......
欢迎任何想法。
感谢。
答案 0 :(得分:1)
根据定义,静态成员是每个类(或具有ThreadStatic属性的每个线程)。
答案 1 :(得分:0)
如果您需要在webpart上保存该属性,请在该属性上添加WebPartStorageAttribute,同时在该FriendlyNameAttribute上添加{{3}}以使其保持清洁:
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
这就是你要追求的吗?如果没有,你能进一步澄清吗?
答案 2 :(得分:0)
我终于采用了另一种方式,我只是在工具部分添加了一些复选框,并在webpart上设置了属性。
无论如何,我想要做的是:
让Web部件更改其对Edit&amp ;;的控件。浏览模式。在编辑模式下,我显示两个ListBox控件,两个按钮(添加,删除)。当我单击添加按钮时,必须从左侧ListBox中删除该值并将其添加到右侧ListBox中,到目前为止,我能够很好地使这个功能没有问题......当我回到浏览模式我需要使用右侧的ListBox中的项目来显示(所以我添加了一个ListItemCollection控件,它将存储右侧ListBox中的值),项目文本和TextBox控件,然后用户将在该文本框中输入文本并点击“搜索”按钮,将执行搜索查询。
我的问题是,当我从编辑转到浏览ListItemCollection变量时,我添加了重新启动。所以我宣称它是共享的,这确实有效,但是当我添加一个新的WebPart实例时,它们显示了相同的字段......我不知道是否有办法做静态类级变量这对每个实例都是唯一的,所以我采用了ToolPart方式......