Avatar billede basementjack Nybegynder
24. oktober 2004 - 20:18 Der er 16 kommentarer og
1 løsning

Dynamisk indhold med layout

Jeg har kigget på en del indlæg under asp.net, hvor der (som regel) genareres en tabel dynamisk og så vises den...
1. Hvad er fordelen ved det?
2. Hvordan bruger man det i praksis med webcontroller m.m. til en tabel som skal have noget layout?
---------
Kigget på fx:
http://www.eksperten.dk/spm/553961
Avatar billede basementjack Nybegynder
24. oktober 2004 - 20:50 #1
Og hvad så hvis man vil have funktionalitet ind også med fx knapper?..

Dim btnMake AS Button = New Button()
btnMake.Text = "Make"
btnMake.OnClick = "make()"

Koden fejler, pga at OnClick er protected...
Avatar billede snepnet Nybegynder
24. oktober 2004 - 20:54 #2
du blander lidt en vb og en c# model der... hvilket sprog er det du skriver i ?
mvh
Avatar billede snepnet Nybegynder
24. oktober 2004 - 20:55 #3
hvis du i c# skal abbonere på et klikevent, og vil skrive det i din code-behind ser det sådan her ud :

Button btn = new Button();
btn.Click += new EventHandler(btn_Click);

og handleren :

protected void btn_Click(object sender, EventArgs e)
{
  //...
}

mvh
Avatar billede snepnet Nybegynder
24. oktober 2004 - 20:59 #4
jeg er ikke god til vb, men jeg tror man plejer at lavet noget
AddHandler btn.Click, AddressOf btn_Click
når du gør det dynamisk på den måde...
(handleren skal så også implementeres).

jeg kan sagtens være galt i byen mht. vb-tingen.

mvh
Avatar billede basementjack Nybegynder
24. oktober 2004 - 21:00 #5
Det er okay. Jeg skulle bare at vide at man kan lave noget med en handler..

Man hvordan ville du så lave en tabel med flere webcontrols?..

Og jeg skriver i vb ja..
Avatar billede snepnet Nybegynder
24. oktober 2004 - 21:01 #6
(OnClick er knappens interne metode til at håndterer eventet... hvis du vil have fingre i den, skal du lave en specialisering af knappen og overskrive metoden)
mvh
Avatar billede snepnet Nybegynder
24. oktober 2004 - 21:05 #7
du kan bare indsætte kontroller i tabelcellerne fuldstændig som du har lyst til...

på C# ville det sådan her ud :
(tager lige fra det spørgsmål du henviste til)

Table tbl = new Table();
TableRow tr = null;
TableCell tc = null;

foreah(et eller andet)
{
  tr = new TableRow();
  foreach(noget andet)
  {
    tc = new TableCell();
    // du kunne smide en knap ind her :
    Button btn = new Button();
    btn.Click += new EventHandler(btn_Click);
    // tilføj den i cellen
    tc.Controls.Add(btn);
    tr.Cells.Add(tc);
  }
  tbl.Rows.Add(tr);
}

mvh
Avatar billede basementjack Nybegynder
24. oktober 2004 - 21:10 #8
Jaaaaa.. men jeg kan kun finde HtmlTable eller DataTable i min classbrowser.. Ikke nogen bare Table.. Hvad er det for en?
Avatar billede snepnet Nybegynder
24. oktober 2004 - 21:17 #9
det er denne her :
System.Web.UI.WebControls.Table
Avatar billede snepnet Nybegynder
24. oktober 2004 - 21:19 #10
(dem du nævner er dem her :
System.Data.DataTable
System.Web.UI.HtmlControls.HtmlTable)
Avatar billede basementjack Nybegynder
24. oktober 2004 - 21:22 #11
Jeg mangler en sort funktion i classbrowser... Fandt den.. ;)
Tak for hjælpen.. Læg et svar..
Avatar billede snepnet Nybegynder
24. oktober 2004 - 21:23 #12
det skal du få.
mvh
Avatar billede basementjack Nybegynder
24. oktober 2004 - 21:23 #13
Og gider du oversætte til vb med http://www.developerfusion.com/utilities/convertcsharptovb.aspx for den melder fejl på det du skrev 21:05...
Avatar billede snepnet Nybegynder
24. oktober 2004 - 21:37 #14
ja den er ikke så vild med "et eller andet" og "noget andet" :o)

men lige inden da :

hvis du skal generere lister baseret på indholdet i en eller anden datakilde er der 3 serverkontroller, som er meget relevante :

DataGrid // meget excel-agtig
DataList // giver gode muligheder for at arbejde direkte med et tabellayout
Repeater // meget generisk - giver mulighed for det meste

der skulle være nogle guidelines her :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/aspnet-whenusedatawebcontrols.asp

mht oversættelsen... prøve sådan noget som det her :
Dim tbl As Table = New Table ()
Dim tr As TableRow = Nothing
Dim tc As TableCell = Nothing
For Each someRow As DataRow In someRowContainer.Rows
tr = New TableRow ()
tc = New TableCell ()
tc.Text("someColumnName").ToString()
tr.Cells.Add(tc)
Dim btn As Button = New Button ()
btn.Click += New EventHandler (btn_Click)
tc = New TableCell ()
tc.Controls.Add(btn)
tr.Cells.Add(tc)
tbl.Rows.Add(tr)
Next

mvh
Avatar billede snepnet Nybegynder
24. oktober 2004 - 21:40 #15
(hvis du slet ikke kan bruge det til en meter, kan jeg godt prøve at lave kode her hos mig i vb, så jeg er sikker på at det virker... men du kommer lige til at vente lidt så).
mvh
Avatar billede basementjack Nybegynder
24. oktober 2004 - 23:25 #16
Beklager min dårlige responstid.. Der kom liiige en kæreste og en film i flimmeren.. :)

Men jeg tror jeg er ved at være med.. Og igen tak..
Avatar billede snepnet Nybegynder
24. oktober 2004 - 23:28 #17
det er bare helt fint... og velbekomme.
mvh
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