Ich baue gerade meinen ersten Sharepoint Webpart und der besteht aus mehreren Controls
Es gibt einen Bereich für normale Nutzer, einen Adminbereich und ein Menü, mit dem man dazwischen umschalten kann.
Wenn ich mich innerhalb eines Bereichs aufhalte, funktioniert auch alles.
Jetzt will ich aber aus dem Adminbereich heraus Daten in den Benutzerbereich laden und diesen anzeigen lassen und da klemmts - nicht mit dem Laden, das klappt, aber mit dem Anzeigen.
In einer Liste rufe ich über RowCommand folgnde Funktion auf
Wird für die Controls Visible gesetzt, so wird das im Objekt auch übernommen, sagt der Debugger, aber im Browser sehe ich weiterhin den Adminbereich (und ja, Controls[1] ist der Benutzerbereich, Controls[2] der Adminbereich)
Das Umschalten zwischen den beiden Bereich im Menü erfolgt auf die gleiche Weise und da funktionierts
Vielleicht geh ich da komplett falsch ran, aber kann mir hier jemand helfen?
Code:
public class VisualWebPart1 : WebPart { private const string _ascxPath = @"~/_CONTROLTEMPLATES/ucDatenErfassen.ascx"; private const string _ascxMenuePath = @"~/_CONTROLTEMPLATES/ucMenue.ascx"; private const string _ascxAdminPath = @"~/_CONTROLTEMPLATES/ucAdministration.ascx"; protected override void CreateChildControls() { try { Microsoft.SharePoint.WebControls.CssLink cssLink = new Microsoft.SharePoint.WebControls.CssLink(); cssLink.DefaultUrl = "/_layouts/Menu.css"; this.Page.Header.Controls.Add(cssLink); Control control = Page.LoadControl(_ascxMenuePath); Controls.Add(control); Control control2 = Page.LoadControl(_ascxPath); Controls.Add(control2); Control control3 = Page.LoadControl(_ascxAdminPath); control3.Visible = false; Controls.Add(control3); } catch (Exception ex) { Console.Out.Write("CreateChildcontrol " + ex.Message); } }
Wenn ich mich innerhalb eines Bereichs aufhalte, funktioniert auch alles.
Jetzt will ich aber aus dem Adminbereich heraus Daten in den Benutzerbereich laden und diesen anzeigen lassen und da klemmts - nicht mit dem Laden, das klappt, aber mit dem Anzeigen.
In einer Liste rufe ich über RowCommand folgnde Funktion auf
Code:
protected void gvAbrechnung_RowCommand(object sender, GridViewCommandEventArgs e) { if (this.Parent.Controls[1] != null && this.Parent.Controls[2] != null) { this.Parent.Controls[1].Visible = true; // Benutzerbereich anzeigen this.Parent.Controls[2].Visible = false; // Adminbereich ausblenden ucDatenErfassen ucd = (ucDatenErfassen)this.Parent.Controls[1]; // Objekt Benutzerbereich holen ucd.LoadAdminReisekostenByID(e.CommandArgument.ToString()); // Funktion darin ausführen, Daten holen } }
Das Umschalten zwischen den beiden Bereich im Menü erfolgt auf die gleiche Weise und da funktionierts
Code:
protected void btnDaten_Click(object sender, EventArgs e) { if (this.Parent.Controls[1] != null && this.Parent.Controls[2] != null) { this.Parent.Controls[1].Visible = true; this.Parent.Controls[2].Visible = false; } }
Comment