【发布时间】:2011-09-28 03:38:18
【问题描述】:
我在处理 webparts 变量时遇到了问题...我来自标准 ASP 语言,所以对我来说,将变量存储在会话和其他部分是做所有事情的常用方法 =)
现在我必须创建一个 webpart,wp 必须根据参数编写一个图表,我无法理解变量是如何工作的:我无法理解何时保存和何时删除以及其他类似的事情!
让我解释一下:我有一个带有右侧配置工具栏的 Web 部件,我在其中放置了值。每次按下按钮或下拉列表中的值发生更改时,它都会引发一个导致“CreateChild”的事件"函数..
很多时候数据是“存储”的,其他时候不是!
这就是我用来存储价值的方式(在 ApplyChanges 覆盖函数中):
WPChartGenerator wpParent = (WPChartGenerator)this.ParentToolPane.SelectedWebPart;
wpParent.WebUrl = txtWebUrl.Text.Trim();
在 CreateChild 事件中,我得到如下值:
WPChartGenerator wpParent = (WPChartGenerator)this.ParentToolPane.SelectedWebPart;
this.ddlWeb = new DropDownList();
this.ddlWeb.ID = "ddlweb" + wpParent.ID;
ddlWeb.SelectedValue = wpParent.WebService;
现在.. 有时这可行,例如,当我按下按钮时,我在按钮的代码中调用,然后是存储每个值的代码。在某些情况下(如按钮),这可行,在其他情况下(如下拉列表索引更改事件)这失败了,我发现 wpParent 中的每个对象都等于它的初始值。
我注意到的另一件事是,在某些情况下,当一个事件被触发时,首先要执行的事情(甚至比事件的关联代码更早)il CreateChild(甚至比 OnLoad 更早!!!)
谁能告诉我我做错了什么?有人有这方面的好教程吗?
感谢和抱歉 4 我的学校英语水平 =)
忘了说每个变量都被实现为一个属性,就像这样:
[WebBrowsable(false)]
[Personalizable(PersonalizationScope.Shared)]
[WebPartStorage(Storage.Shared)]
public string WebUrl
{
get
{
return this.webUrl;
}
set
{
this.webUrl = value;
}
}
【问题讨论】:
标签: sharepoint sharepoint-2007 web-parts