Frage

Ich habe die Voraussetzung, um einen Budgetbericht zu erstellen, der die gleichen Schlüsselfelder für 6 verschiedene Kategorien enthält. Ich habe ein visuelles Webpart geschrieben, das für jeden Abschnitt ein ListItem erstellt und die Daten zusammen mit einer Schaltfläche Bearbeiten anzeigt. Es gibt auch eine benutzerdefinierte Eigenschaft im Webpart, um die Art des Budgets zu speichern:

 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);
        }
    }
}

Ich habe dieses visuelle WePart 6 -mal auf derselben Seite hinzugefügt. Es scheint, dass nur die erste Kontrolle tatsächlich die benutzerdefinierte Eigenschaft speichert. Ist dies wahrscheinlich ein Fehler im Code oder können Sie nicht mehrfach auf derselben Seite das gleiche Webpart haben?

Ich möchte keine Stunden damit verbringen, Debugging zu verbringen, wenn jemand bereits weiß, dass ich eine separate Kontrolle pro Abschnitt erstellen muss. Danke vielmals!

War es hilfreich?

Lösung 2

Ich habe jetzt herausgefunden, warum ich die benutzerdefinierten Eigenschaften in der GUI nicht retten konnte. Ich habe das aktuelle Webobjekt aus dem SPContext geschlossen. Anscheinend sollte dies nicht geschehen, da es durch den Rahmen behandelt wird. Sobald ich meine Strömung entfernt habe.

Andere Tipps

Wenn Sie mehrmals ein Webpart auf einer Seite einstellen möchten, muss jede Instanz des Webparts eine eindeutige ID haben. Hier ist ein Beispiel von etwas, das Sie tun könnten:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top