none
ASP-Seite dynamisch erstellen RRS feed

  • Frage

  • Hi,

    ich frage mich zur Zeit, wie ich es umsetzen kann, dass meine ASP-Seite sich dynamisch neu genieren laesst bei einem Aufruf. Die Datenparameter habe ich vorliegen, aber wie sage ich bspw. einer Tabelle, wie gross sie sein soll und dass Alles eine guten Ueberblick hinterlaesst.

    Gibt es dafuer ein Feature /Technologie von ASP.Net. Oder kann jemand Beispiele nennen?

    Gruss Martin 

    Freitag, 30. April 2010 08:32

Antworten

  • Hi,
    ich moechte z.B. eine oder mehrere Tabellen erst nach bestimmten Eingaben hinzufuegen. Das Hinzufuegen soll der Code-behind uebernehmen.

    Ausserdem sollen die eingefuegten Tabellen auch wieder mehrere Tabellen beinhalten in denen ich das DropDownlisten hineinpacken moechte. Alles soll sehr dynamisch sein und abhaengig von den Eingaben des Nutzers.

    Da würde ich mir einen Container (bspw. PlaceHolder, Panel, ...) in die Seite einbauen und dann per CodeBehind die Controls erstellen und hinufügen.

    <asp:PlaceHolder ID="MyPlaceHolder runat="server" />

    Das Hinzufügen per Code würde dann bspw. so gehen:

    Dim MyGridView As New GridView()
      MyGridView.ID = "<EindeutigeId>"
      MyGridView.DataSource = <Datenquelle>
      ...
    
      MyPlaceHolder.Controls.Add( MyGridView )
    

    Das ganze geht natürlich auch verschachtelt, also bspw. in ein dynamisch generiertes Control noch weitere Controls aufzunehmen (wichtig ist dabei u.a. die eindeutige ID und das <Control>Controls.Add( <AnderesControl> )

    Wenn Du mit PostBack Daten/Events arbeiten musst, müssen die dynamisch erzeugten Controls bei Page_Init, spät. bei Page_Load, geladen und erstellt werden. Alles andere wird früher oder später zu Problemen führen.

     


    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
    Freitag, 30. April 2010 14:02
    Moderator

Alle Antworten

  • Hallo Martin,
    ich frage mich zur Zeit, wie ich es umsetzen kann, dass meine ASP-Seite sich dynamisch neu genieren laesst bei einem Aufruf. Die Datenparameter habe ich vorliegen, aber wie sage ich bspw. einer Tabelle, wie gross sie sein soll und dass Alles eine guten Ueberblick hinterlaesst.

    ich weiß nicht wirklich, was Du da machen willst. Willst Du lediglich die ASP[.NET ] Seite neu aufrufen und die Darstellung ändern? Falls ja, was willst Du ändern? Das ganze Layout?

    Um Webanwendungen zu designen, solltest Du dich in CSS einlesen, damit kannst Du sämtliche Layoutsachen steuern.

     


    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
    Freitag, 30. April 2010 08:55
    Moderator
  • Hallo Stefan,

    ich moechte z.B. eine oder mehrere Tabellen erst nach bestimmten Eingaben hinzufuegen. Das Hinzufuegen soll der Code-behind uebernehmen.

    Ausserdem sollen die eingefuegten Tabellen auch wieder mehrere Tabellen beinhalten in denen ich das DropDownlisten hineinpacken moechte. Alles soll sehr dynamisch sein und abhaengig von den Eingaben des Nutzers.

     

    Gruss Martin

     

    Freitag, 30. April 2010 13:23
  • Hi,
    ich moechte z.B. eine oder mehrere Tabellen erst nach bestimmten Eingaben hinzufuegen. Das Hinzufuegen soll der Code-behind uebernehmen.

    Ausserdem sollen die eingefuegten Tabellen auch wieder mehrere Tabellen beinhalten in denen ich das DropDownlisten hineinpacken moechte. Alles soll sehr dynamisch sein und abhaengig von den Eingaben des Nutzers.

    Da würde ich mir einen Container (bspw. PlaceHolder, Panel, ...) in die Seite einbauen und dann per CodeBehind die Controls erstellen und hinufügen.

    <asp:PlaceHolder ID="MyPlaceHolder runat="server" />

    Das Hinzufügen per Code würde dann bspw. so gehen:

    Dim MyGridView As New GridView()
      MyGridView.ID = "<EindeutigeId>"
      MyGridView.DataSource = <Datenquelle>
      ...
    
      MyPlaceHolder.Controls.Add( MyGridView )
    

    Das ganze geht natürlich auch verschachtelt, also bspw. in ein dynamisch generiertes Control noch weitere Controls aufzunehmen (wichtig ist dabei u.a. die eindeutige ID und das <Control>Controls.Add( <AnderesControl> )

    Wenn Du mit PostBack Daten/Events arbeiten musst, müssen die dynamisch erzeugten Controls bei Page_Init, spät. bei Page_Load, geladen und erstellt werden. Alles andere wird früher oder später zu Problemen führen.

     


    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
    Freitag, 30. April 2010 14:02
    Moderator