Avatar billede hongsaquen Nybegynder
24. marts 2004 - 16:26 Der er 12 kommentarer og
2 løsninger

RadioButtonList - hvordan radioknap på hver række i tabel ?

jeg har en tabel hvori jeg dynamisk indsætter rækker og celler fra en .aspx.cs klasse á la:

    HtmlTableCell cell0 = new HtmlTableCell();   
    cell0.Controls.Add(/*en radioknap hér*/);
    row.Cells.Add(cell0);

jeg vil gerne have en radioknap i den første kolonne på hver række, som skal bruges til at vælge en enkelt række ud.
jeg erklærer en RadioButtonList, og regner med at jeg skal indsætte et ListItem til denne RadioButtonList på hver række i tabellen á la:

        /*pseudo*/
        cell0.Controls.Add(RadioButtonBugType.ListItem);

.....men hvordan gør man?
Avatar billede hongsaquen Nybegynder
24. marts 2004 - 16:47 #1
hvis jeg skriver:

    //radiobutton
    HtmlTableCell cell0 = new HtmlTableCell();                    RadioButtonBugType.Items.Add(new ListItem());
    cell0.Controls.Add(RadioButtonBugType);
    row.Cells.Add(cell0);

...får jeg det rigtige antal fungerende radioknapper, men de er indsat i tabellen på den sidste række, og ikke én på hver...
Avatar billede hongsaquen Nybegynder
24. marts 2004 - 16:47 #2
ja linien hoppede lidt udad :-)
Avatar billede midas_dk Nybegynder
24. marts 2004 - 16:48 #3
Det kan du ikke (umiddelbart). En radiobuttonlist er én samlet kontrol, som ikke kan deles op på den måde, du ønsker.

Jeg er bange for at du må nøjes med at lave almindelige radiobuttons...
Avatar billede hongsaquen Nybegynder
24. marts 2004 - 16:53 #4
ja men så er de jo ikke mutual exclusive? eller kan jeg opnå det alligevel?
Avatar billede jakobg Nybegynder
24. marts 2004 - 17:51 #5
Du BURDE indsætte RadioButtons, og så angive deres GroupName: Så burde du få dén effekt du er ude efter.
Men jeg har lige lært (i dag, faktisk) at der er en "known issue" med radiobuttons i repeaters, datalists og datagrids: GroupName-attributten virker ikke, og du ender med radiobuttons som ikke er sammenhængende.

Det bedste du kan gøre er, at nøjes med at bruge et <input type="radio" id="rbRadio" name="DinGruppe">, altså et helt almindeligt HTML-tag, og så samle den valgte værdi op med Request.Form("rbRadio").
Avatar billede hongsaquen Nybegynder
25. marts 2004 - 11:17 #6
mm - hvordan indsætter jeg en knap på hver række? jeg har en helt almindelig HtmlTable, og jeg vil gerne beholde min metode til at indsætte rækker á la:

    HtmlTableCell cell0 = new HtmlTableCell();   
    cell0.Controls.Add(/*en radioknap hér*/);
    row.Cells.Add(cell0);
Avatar billede jakobg Nybegynder
25. marts 2004 - 12:32 #7
Du kan evt. gøre således:

Dim tblTable As New HtmlTable
Dim rbRadion As New RadioButton

Call tblTable.Rows.Add(New HtmlTableRow)
Call tblTable.Rows(0).Cells.Add(New HtmlTableCell)

rbRadion.GroupName = "MinGruppe"
rbRadion.ID = "rbRadio"
Call tblTable.Rows(0).Cells(0).Controls.Add(rbRadion)
Avatar billede hongsaquen Nybegynder
25. marts 2004 - 13:03 #8
sådan oversat til C# må det være noget á la:

..og i .aspx filen
<input type ="radio" id = "rb" name = "rbGroup" runat="server">

..erklærer en HtmlInputRadioButton i aspx.cs filen:
protected System.Web.UI.HtmlControls.HtmlInputRadioButton rb;

..og når jeg indsætter i tabellen (det sker i en for-løkke):

    HtmlTableCell cell0 = new HtmlTableCell();
    cell0.Controls.Add(rb);   
    row.Cells.Add(cell0);

GroupName må være specifikt for vb? Min HtmlInputRadioButton har ikke sådan en..
Avatar billede hongsaquen Nybegynder
25. marts 2004 - 13:06 #9
..men så får jeg bare en enkelt radioknap på den nederste række...
Avatar billede jakobg Nybegynder
25. marts 2004 - 13:32 #10
Den samme radiobutton kan kun optræde en gang på den samme form: Du bliver nød til at lave en ny radiobutton for hver du gerne vil tilføje.

Dét du laver i dit eksempel, er blot at flytte den samme radiobutton rundt på siden. Hvis du vil tilføje den i din codebehind, behøver du ikke have den på aspx-side også.

Men umiddelbart er det altså noget rod du er kommet ud i, hvorfor vil du lave din HTML table i codebehind'en?
Avatar billede hongsaquen Nybegynder
25. marts 2004 - 13:54 #11
enig :-)
mit problem ér at jeg skal kunne udvælge en enkelt række (for at ændre den), men jeg indsætter rækkerne dynamisk, så jeg ved *sku* ikke hvordan jeg skal gøre...hvis jeg laver en ny radioknap for hver række, kan jeg ikke få dem til at hænge sammen som en gruppe. I bagklogskabens klare lys, skulle jeg jo nok have brugt en DataList eller et DataGrid...
Avatar billede jakobg Nybegynder
25. marts 2004 - 14:17 #12
HELT klart noget du skulle ha' klaret med et datagrid, slet ingen tvivl om det.

Men har du prøvet at angive GroupName for hver enkelt radiobutton? Husk på at det formentlig ikke virker som jeg skrev i den første post. Du må bruge alm. <input> tags istedet.
Avatar billede hongsaquen Nybegynder
25. marts 2004 - 14:47 #13
..jeg tror jeg bider i det sure æble og skifter til et datagrid. Men tak for hjælpen :-)
Avatar billede jakobg Nybegynder
25. marts 2004 - 15:37 #14
Np, glad to help... :)
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