Benutzer mit den meisten Antworten
ASP.NET Inhalte eines UserControls werden nie angezeigt

Frage
-
Ich lade ein UserControl mit eingebetteten Controls dynamisch in ein UpdatePanel. Leider werden die Inhalte des UserControls nie angezeigt. Schlimmer noch: wenn ich im Page_Load des UserControls die eingebetteten Controls anschaue, sind deren Verweise NOTHING. In der Controls-Auflistung des UserControls jedoch sind die Einträge vorhanden (5 an der Zahl), lassen sich jedoch mit FindControl nicht ansprechen.
Wer möchte, kann sich das mal anschauen. Ich brauche dafür dringend eine Lösung!
Was mache ich grundlegend falsch? Bin für jeden Tipp dankbar!!!
(VS 2008 SP1)
Noch ein Nachtrag: das UserContol wird auf einer Page ohne Updatepanel problemlos angezeigt!!!
UserControl:
<%@ Control Language="vb" AutoEventWireup="true" CodeBehind="Edit.ascx.vb" Inherits="SCEDynSite.Edit" %> <asp:Table ID="Table1" runat="server" Height="16px" Width="529px"> <asp:TableRow ID="TableRow1" runat="server"> <asp:TableCell ID="TableCell1" runat="server"> <asp:Image ID="Image1" runat="server" /> </asp:TableCell> <asp:TableCell ID="TableCell2" runat="server"> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </asp:TableCell> <asp:TableCell ID="TableCell3" runat="server"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> </asp:TableCell> </asp:TableRow> </asp:Table>
Testseite:
<%@ Page Language="vb" AutoEventWireup="True" CodeBehind="WebForm1.aspx.vb" Inherits="SCEDynSite.WebForm1" %> <%@ Register src="Edit.ascx" tagname="Edit" tagprefix="Edit" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Unbenannte Seite</title> </head> <body> <form id="form1" runat="server"> <asp:ScriptManager ID="ScriptManager1" runat="server"/> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> </asp:UpdatePanel> </form> </body> </html>
CodeBehind der Testseite
Public Partial Class WebForm1 Inherits System.Web.UI.Page Private Sub UpdatePanel1_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles UpdatePanel1.Init Dim Edit1 As New Edit End Sub End Class UpdatePanel1.ContentTemplateContainer.Controls.Add(Edit1)
- Bearbeitet Robert BreitenhoferModerator Donnerstag, 20. Januar 2011 10:33 Formatierung
Antworten
-
Hi,
Ich lade ein UserControl mit eingebetteten Controls dynamisch in ein UpdatePanel. Leider werden die Inhalte des UserControls nie angezeigt . Schlimmer noch: wenn ich im Page_Load des UserControls die eingebetteten Controls anschaue, sind deren Verweise NOTHING . In der Controls-Auflistung des UserControls jedoch sind die Einträge vorhanden (5 an der Zahl), lassen sich jedoch mit FindControl nicht ansprechen.
Du machst den Fehler, das Control mit New <Control> ... zu erstellen.
Dim Edit1 As Edit = CType( Page.LoadControl( "~/pfad/zur/datei.ascx" ), Edit )
sollte helfen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Freitag, 14. Januar 2011 15:42
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Januar 2011 10:33
-
Hallo René,
warum geht New bei den Standard-Controls wie Button, Textbox etc, jedoch nicht bei UserControls?
weil ein UserControl eben auch aus der .ascx Datei, den dort eingebundenen Controls, ... besteht und ein New <ControlKlasse> hier nur die CodeBehind Klasse (also das, was in der datei.ascx.vb steht) instanziert.
Bei einem CustomControl hast Du nur den Code selbst, bist selbst für ChildControls zuständig, für die Instanzierung, ... Bei den StandardControls und sauber programmierten eigenen CustomControls, geht das deshalb mit New ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Januar 2011 10:33
Alle Antworten
-
Hi,
Ich lade ein UserControl mit eingebetteten Controls dynamisch in ein UpdatePanel. Leider werden die Inhalte des UserControls nie angezeigt . Schlimmer noch: wenn ich im Page_Load des UserControls die eingebetteten Controls anschaue, sind deren Verweise NOTHING . In der Controls-Auflistung des UserControls jedoch sind die Einträge vorhanden (5 an der Zahl), lassen sich jedoch mit FindControl nicht ansprechen.
Du machst den Fehler, das Control mit New <Control> ... zu erstellen.
Dim Edit1 As Edit = CType( Page.LoadControl( "~/pfad/zur/datei.ascx" ), Edit )
sollte helfen.
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Stefan FalzModerator Freitag, 14. Januar 2011 15:42
- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Januar 2011 10:33
-
Hallo René,
warum geht New bei den Standard-Controls wie Button, Textbox etc, jedoch nicht bei UserControls?
weil ein UserControl eben auch aus der .ascx Datei, den dort eingebundenen Controls, ... besteht und ein New <ControlKlasse> hier nur die CodeBehind Klasse (also das, was in der datei.ascx.vb steht) instanziert.
Bei einem CustomControl hast Du nur den Code selbst, bist selbst für ChildControls zuständig, für die Instanzierung, ... Bei den StandardControls und sauber programmierten eigenen CustomControls, geht das deshalb mit New ...
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort markiert Robert BreitenhoferModerator Donnerstag, 20. Januar 2011 10:33