Avatar billede script Nybegynder
17. august 2004 - 14:09 Der er 6 kommentarer og
2 løsninger

Load dynamisk content, ind på en template side

Hej Alle sammen

Det handler om at hive dynammisk content ind på en template side.

Jeg har en tabel, med en menu og en content side. Så vil jeg gerne genere content siden dynamisk. Er der nogen forslag til hvordan jeg bedst laver det??

Jeg har prøvet med server.execute, men jeg taber viewstate, når klienten laver et postback.

Er der nogen der ved hvordan jeg løser dette problem??


// Script
Avatar billede snepnet Nybegynder
17. august 2004 - 18:08 #1
hej ka... fik du ikke kigget på det med usercontrols - de er meget oplagte at benytte til den slags.
Avatar billede snepnet Nybegynder
17. august 2004 - 21:51 #2
men bortset fra det kan du kigge her :
http://www.dotnet247.com/247reference/msgs/12/63043.aspx
Avatar billede snepnet Nybegynder
17. august 2004 - 22:05 #3
Det skulle efter sigende være en bug i version 1.0 af frameworket, så hvis du opgraderer til 1.1 (eller 2.0 :P) skulle den være fikset.
Avatar billede script Nybegynder
24. august 2004 - 00:14 #4
<%@ Page language="c#" Codebehind="productlist.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.UI.productlist" %>
<%@ Register TagPrefix="uc1" TagName="header" Src="header.ascx" %>
<%@ Register TagPrefix="uc1" TagName="footer" Src="footer.ascx" %>
<%@ Register TagPrefix="uc1" TagName="menu" Src="shopmenu.ascx" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>e-shoppen</title>
        <meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
        <meta content="C#" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
    </HEAD>
    <body>
        <form id="Main" method="post" runat="server">
            <TABLE id="Table1" style="WIDTH: 850px; HEIGHT: 538px" cellSpacing="1" cellPadding="1"
                width="803" align="center" border="1">
                <TR>
                    <TD align="center" width="100%" colSpan="3">
                        <uc1:header id="header1" runat="server"></uc1:header></TD>
                </TR>
                <TR>
                    <TD style="WIDTH: 248px" vAlign="top">
                        <uc1:menu id="menu1" runat="server"></uc1:menu>
                    </TD>
                    <!-- Body Content -->
                    Her kommer så de ændringer jeg laver hver gang                   
                    </TD>
                    <TD style="WIDTH: 270px; HEIGHT: 442px" vAlign="top">
                        <uc1:menu id="Menu2" runat="server" DESIGNTIMEDRAGDROP="128"></uc1:menu>
                    </TD>
                </TR>
                <TR>
                    <TD align="center" width="100%" colSpan="3">
                        <uc1:footer id="footer1" runat="server"></uc1:footer></TD>
                </TR>
            </TABLE>
            &nbsp;
        </form>
    </body>
</HTML>
Avatar billede snepnet Nybegynder
24. august 2004 - 00:30 #5
Du får lige en fuldstændig lam skitse... men det er bare for at du kan se princippet i det :

Jeg har en folder der hedder UserControls under mit web, og det indeholder to - ja usercontrols :o)

den første (TopBar.ascx) :
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="TopBar.ascx.cs" Inherits="EXP.UserControls.TopBar" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
TOP
<hr>

den anden (SubBar.ascx) :
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="SubBar.ascx.cs" Inherits="EXP.UserControls.SubBar" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%>
<hr>
SUB

Så har jeg her en form (SomeForm.aspx) - med en knap og en tekstboks :
<%@ Page language="c#" Codebehind="SomeForm.aspx.cs" AutoEventWireup="false" Inherits="EXP.SomeForm" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>SomeForm</title>
        <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
        <meta name="CODE_LANGUAGE" Content="C#">
        <meta name="vs_defaultClientScript" content="JavaScript">
        <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body>
        <form id="Form1" method="post" runat="server">
            <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
            <asp:Button id="Button1" runat="server" Text="Button"></asp:Button>
        </form>
    </body>
</HTML>

Med denne code-behind :
public class SomeForm : KABaseForm
{
    protected System.Web.UI.WebControls.TextBox TextBox1;
    protected System.Web.UI.WebControls.Button Button1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    }

    override protected void OnInit(EventArgs e)
    {
        InitializeComponent();
        base.OnInit(e);
    }
   
    private void InitializeComponent()
    {   
        this.Load += new System.EventHandler(this.Page_Load);

    }
}

Læg mærke til at den arver fra KABaseForm, som ser ud som følger :
public class KABaseForm : Page
{
    protected Panel pnlHeader = new Panel();
    protected Panel pnlFooter = new Panel();

    protected override void OnInit(EventArgs e)
    {
        TopBar tb = (TopBar)LoadControl("~/UserControls/TopBar.ascx");
        pnlHeader.Controls.Add(tb);
        this.Controls[1].Controls.AddAt(0,pnlHeader);
        base.OnInit (e);
    }

    protected override void Render(HtmlTextWriter writer)
    {
        SubBar sb = (SubBar)LoadControl("~/UserControls/SubBar.ascx");
        pnlFooter.Controls.Add(sb);
        this.Controls[1].Controls.Add(pnlFooter);
        base.Render (writer);
    }
}

i initialiseringen sætter den en header ind, og i render sørger den for at sætte en footer ind.
Avatar billede snepnet Nybegynder
24. august 2004 - 00:33 #6
Det ser jo fuldstændig ægget ud nå du ser det, da "komponenterne" kommer lige efter hinanden, men det var mere for at du kunne se princippet i det.... Altså at have en base der sørger for at proppe et eller andet tingeltangel ind, således at man bare kan arve fra den - i forvisning om at man får nogle standardklodser med.

Det kan gøre på flere måder, og det kan udvides på endnu flere..... men dette er bare en lille principskitse.
Avatar billede snepnet Nybegynder
29. august 2004 - 00:42 #7
har du brug for mere her script - ellers et svar her.
mvh
Avatar billede snepnet Nybegynder
29. august 2004 - 00:44 #8
lolz - jeg havde jo allerede svaret oppe i toppen - sorry !
men skal du bruge mere her ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester