我需要建立一个预算报告,该报告具有与6个不同类别的相同关键字段。我编写了一个视觉网络部分,该部分为每个部分拉一个ListItem,并与编辑按钮一起显示数据。 Webpart中还有一个自定义属性来存储预算类型:

 public class ProjectDetailsView : WebPart
    {
        // Visual Studio might automatically update this path when you change the Visual Web Part project item.
        private const string _ascxPath = @"~/_CONTROLTEMPLATES/SpecialProjectsProjectList/ProjectDetailsView/ProjectDetailsViewUserControl.ascx";

        [Personalizable(), WebBrowsable]
        public String BudgetType { get; set; }

        protected override void CreateChildControls()
        {
            ProjectDetailsViewUserControl control = Page.LoadControl(_ascxPath) as ProjectDetailsViewUserControl;
            //Control control = Page.LoadControl(_ascxPath);
            if (control != null)
            {
                control.WebPart = this;
            }

            Controls.Add(control);
        }
    }
}

我在同一页面上添加了6次视觉Wepart。似乎只有第一个控件实际上是保存自定义属性。这可能是代码中的错误,还是在同一页面上没有多次具有相同的WebPart?

如果有人已经知道我需要每节创建一个单独的控件,我不想花几个小时调试。非常感谢!

有帮助吗?

解决方案 2

我现在发现了为什么我无法将自定义属性保存在GUI中。我正在从Spcontext关闭当前的Web对象。显然,这不应按照框架处理。一旦我从WebPart用户控件中删除了Currentite.dispose()(),我就可以正确保存自定义属性。

其他提示

如果要多次将Web零件放在页面上,则Web部件的每个实例都需要具有唯一的ID。这是您可以做的事情的样本:

control.ID = this.ID + "_ProjectDetailsControl";

许可以下: CC-BY-SA归因
scroll top