重新加载时Sharepoint 2007 Web部件变量问题

时间:2011-07-04 13:04:49

标签: sharepoint sharepoint-2007 web-parts

我遇到了webparts变量的麻烦......我来自标准的ASP语言,所以,对我来说,在会话和其他部分存储变量是做所有事情的常用方法=)

现在我必须创建一个webpart,wp必须从参数中编写一个图形,我无法理解HOW变量的工作原理:我无法理解WHEN保存和WHEN擦除以及其他类似的东西!

让我解释一下:我有一个带有配置工具栏的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;

现在..有时这是有效的,例如,当我按下按钮时我按下按钮的代码,然后代码存储每个值..在某些情况下(如按钮)这个工作,在其他(如下拉列表索引已更改事件)此操作失败,我发现wpPar​​ent中的每个对象都等于它的初始值。

我注意到的另一件事是,在某些情况下触发事件时,首先要执行的事情(甚至首先是事件的相关代码)il CreateChild(甚至首先是OnLoad !!!)

有人可以告诉我我做错了什么吗?对于这个问题,有人有很好的指导吗?

谢谢&抱歉4我的学校水平英语=)

忘记说每个变量都已经实现为属性,如:

[WebBrowsable(false)]
[Personalizable(PersonalizationScope.Shared)]
[WebPartStorage(Storage.Shared)]
public string WebUrl
{
    get
    {
        return this.webUrl;
    }
    set
    {
        this.webUrl = value;
    }
}

1 个答案:

答案 0 :(得分:1)

我无法看到那里的所有代码所以我真的不知道你做错了什么(即你实际上有一个ApplyChanges方法)但是从你说出问题的方式来看,这听起来像你真的需要从头开始,按照其中一个演练教程,确保您了解基础知识,然后开始添加项目代码。

MSDN - Creating Web Parts for SharePoint (VS2010)

MSDN - Walkthrough: Creating a Basic SharePoint Web Part (WSS 3.0)

Developing SharePoint 2007 Web Parts