Avatar billede prec Nybegynder
05. august 2004 - 19:59 Der er 9 kommentarer og
1 løsning

tilføje checkboxes til min liste

Det er måske lidt dumt, men jeg har endnu ikke vendet mig til at benytte datagrids, derfor gør jeg det på den gode gamle måde og udskriver manuelt mine tabeller med en funktion, men hvis jeg nu gerne vil tilføje en checkbox til hver række, som så kan læses fra codebehind, kan jeg ikke rigtig gennemskue den smarteste måde at gøre det på, er der nogen der kender til en god metode?
Avatar billede avlund Nybegynder
05. august 2004 - 20:05 #1
Mit bedste bud ville være at lave en løkke i din codebehind, som bruger FindControl()-metoden til at finde hver enkelt checkbox.
Avatar billede prec Nybegynder
05. august 2004 - 20:18 #2
jeg havde overvejet løsningen at i mit codebehind lave en HtmlCheckbox[] (eller hvad den control hedder) som f.eks hedder cbxValg og så laver på hver linje en checkbox <input type="checkbox" id="cbxValg[]" runat="server">
der er bare nogle ulemper ved den metode, hvis det overhovedet virker, det id der bruges i databasen vil ikke rigtig kunne bruges som key, da der kan være slettet en entry eller lign.
Avatar billede avlund Nybegynder
05. august 2004 - 20:59 #3
Jah, jeg ville også foreslå at lave dine checkboxes on-the-fly med ID fra databasen og så samle dem bagefter i din codebahind - som sagt ville det smarteste nok være at bruge FindControl() og søge på checkboxes.
Avatar billede snepnet Nybegynder
06. august 2004 - 08:30 #4
Hvis du har en tabel

Table table = new Table();

Som du tilknytter nogle row i - i en løkke :

TableRow tr = null;
TableCell tc = null;
CheckBox cb = null;

for(int i=0;i<10;i++)
{
    tr = new TableRow();
   
    // en celle bare med tekst
    tc = new TableCell();
    tc.Text = "hej med dig";
    tr.Cells.Add(tc);

    // en celle med en checkbox
    cb = new CheckBox();
    cb.ID = i.ToString();
    tc = new TableCell();
    tc.Controls.Add(cb);

    // ind med rækken
    table.Rows.Add(tr);
}


Så kan du løbe tabellen den anden vej igennem, hvis du vil se hvordan det står til med checkboxene, eller gøre som de andre skrev :

CheckBox cb = (CheckBox)tr.FintControl(<id>);
eller ved indexering
CheckBox cb = (CheckBox)tr.Cells[1].Controls[0];

(koden er bare skrevet ind herude - så det er ikke sikkert den sådan lige kan kompilere).

Mvh
Avatar billede prec Nybegynder
06. august 2004 - 09:08 #5
Jeg vil prøve det ad, det er dog en anden måde at skrive en tabel end den jeg bruger, jeg beder den bare om at Response.Write noget html kode.
Jeg er gået fra PHP til ASP.NET for ca. ½ år siden, derfor er jeg vant til den gamle metode, og er ikke begyndt at bruge de forskellige objekter som asp.net har til at udføre skrivning af tabellerne.
Avatar billede snepnet Nybegynder
06. august 2004 - 09:56 #6
Response.Write er der for bagudkompetabilitet... Det er ikke noget der er anbefalet at bruge når du arbejder i .NET.
F.eks. skriver den det ud oven over dit html-tag, hvilket visse browserere muligvis vil have problemer med.
hvis du meget gerne vil skrive html-en selv har du en HtmlTextWriter du kan bruge til det.
Avatar billede prec Nybegynder
06. august 2004 - 11:58 #7
jeg er klar over at metoden er ringe, men angående at den skriver det ud før html, man kan lave en public funktion i sit codebehind som man bare kalder i html koden.
Avatar billede snepnet Nybegynder
06. august 2004 - 12:13 #8
det kan du godt (altså det er jo så aspx-koden du skriver ;o), men hvad er det du vil opnå siden du spørger ?
(hvis du lige uddyber skal jeg nok give et bud)
Avatar billede prec Nybegynder
06. august 2004 - 12:26 #9
lige nu ævler jeg bare, du har vist svaret på det jeg ville vide i din første kommentar, du er velkommen til at smide et svar hvis du vil
Avatar billede snepnet Nybegynder
06. august 2004 - 12:30 #10
Ok - men du skal være meget velkommen til at spørge videre :o)
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