Avatar billede anders159 Nybegynder
19. oktober 2005 - 09:54 Der er 10 kommentarer og
1 løsning

Dynamisk opbygning af aspx sider

Hejsa.

Er rimelig ny i dette C#/.NET halløj, så vil hører hvordan man griber følgende problemstilling an.

Har en side der skal opbygges dynamisk, alt efter antallet af records jeg få tilbage fra min forspørgsel.

Hvordan gør man det hvis man skal gøre det .net like..

Er det bare at skrive html'en på codebehind sinden, også skrive det ud med response.write()...eller.

Håber nogen gidder øse lidt af deres viden ;)
Avatar billede dr_chaos Nybegynder
19. oktober 2005 - 10:02 #1
hvad der det der skal opbygges dynamisk på siden ?
er det en tabel eller ?
Avatar billede arne_v Ekspert
19. oktober 2005 - 10:06 #2
Response.Write er fy fy i ASP.NET (men den virker dog)

Umiddelbart tror jeg at du skal kigge på enten DataGrid eller repeater !
Avatar billede Lars Søndergaard Nybegynder
19. oktober 2005 - 10:13 #3
smid nogle asp webform controls på din aspx side og lav en reference til dem i din codebehind aspx.cs og leg med controls der. response.write skal du glemme alt om.. du kan bruge den til debug og den slags
Avatar billede anders159 Nybegynder
19. oktober 2005 - 10:34 #4
Jeg gør brug af en 3-partskomponent, og der være 1-3 af disse alt efter resultat på forspørgslen. plus en smule almindelige data

Derfor mener jeg ikke at jeg kan opbygge denne side med webcontrols, eller? Der er jo ikke et fast difineret antal controls på siden.

Skal også opbygge lidt tabeller, men der mest til at holde styr på data.
Avatar billede dr_chaos Nybegynder
19. oktober 2005 - 10:42 #5
hvis du f.eks. laver en tabel på siden med en tablerow og en tablecell inden i.
Tabellen skal være en asp:table.
Du skal så give  tablecellen et id og et runat=server.
Så kan du add controls til tabel cellen.
Så kan du f.eks. opbygge din 3.parts komponent i codebehind filen og så tilføje den til tabelcellen.
Avatar billede anders159 Nybegynder
19. oktober 2005 - 10:49 #6
Hej chaos.

Betyder det så at jeg på codebehind-filen kan bestemme hvor mange rækker/celler mm jeg vil have? Ved jo aldrig hvor mange der kommer.

Hvis jeg kan opbygge min tabel på codebehindsiden, må du gerne henvise til et eks på dette, skulle du kende et;)
Avatar billede dr_chaos Nybegynder
19. oktober 2005 - 11:09 #7
aspx side:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication109.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
    <HEAD>
        <title>WebForm1</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 MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
            <asp:Table id="Table1" runat="server"></asp:Table>
        </form>
    </body>
</HTML>

CODEBEHIND
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Net;
namespace WebApplication109
{
    /// <summary>
    /// Summary description for WebForm1.
    /// </summary>
    public class WebForm1 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.Table Table1;
        protected System.Web.UI.WebControls.Button Button1;
   
       
        private void Page_Load(object sender, System.EventArgs e)
        {
            int i = 5;
            for(int j = 0; j<=i;j++)
            {
                TableRow tr = new TableRow();
                for(int k = 0; k<=i;k++)
                {
                    TableCell tc = new TableCell();
                    Label l = new Label();
                    l.Text = "tabel celle nummer " + k;
                    tc.Controls.Add(l);
                    tr.Cells.Add(tc);
                }
                Table1.Rows.Add(tr);
            }

       
        }

        #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: This call is required by the ASP.NET Web Form Designer.
            //
            InitializeComponent();
            base.OnInit(e);
        }
       
        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {   
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }
}
Avatar billede dr_chaos Nybegynder
19. oktober 2005 - 11:11 #8
på ovenstående side tilføjer jeg 5 rækker til en tabel og i hver række er der 5 celler.
I hver celle er der en label.
Du kan tilføje andre til til tabelcellen med controls.add(control).
Avatar billede anders159 Nybegynder
19. oktober 2005 - 11:25 #9
Kom nu med et svar din Haj ;) Så smider jeg lige nogle points retur.

Endnu engang 1000 tak for din tid, dette løser alle mine problemer :)
Avatar billede dr_chaos Nybegynder
19. oktober 2005 - 11:34 #10
np :)
altid godt at hjælpe :)
Avatar billede anders159 Nybegynder
19. oktober 2005 - 11:45 #11
:)
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