Avatar billede kolme Nybegynder
19. juli 2006 - 15:52 Der er 16 kommentarer og
1 løsning

Radiobuttons i Datalists itemtemplate

Hej

Jeg sidder og bøvler med at få læst værdien for en radiobuttongruppe der er samlet i en datalists itemtemplate.
Radiobuttonsene blive fyldt med hver sin attribut fra den samme record i en tabel:
Hvis jeg f.eks. har tabellen med attributterne: ID, Navn, tlf1 og tlf2. Så er ID'et rækkens unikke nøgle, navnet er en persons navn og hhv. tlf1 og tlf2 er hver sin radiobutton i samme gruppe.

Jeg har fået fyldt disse data i min datalistes itemtemplate og det fungerer fint, men jeg vil gerne have en funktion der kan se om tlf1 eller tlf2 er valgt. Kan I hjælpe?
Jeg koder i C# i VS2003.
Avatar billede kolme Nybegynder
19. juli 2006 - 17:10 #1
Jeg forestillede mig noget med:
foreach(DataListItem ting in dataliste1.Items)
{
    ting./NOGET/
}

Men kan ikke få det til at virke.
Avatar billede snepnet Nybegynder
20. juli 2006 - 00:20 #2
Du kan finde listen på det id du har givet den, så har du angivet den sådan her:
<asp:RadioButtonList ID="rdoList" runat="server" />

Kan du:
foreach(DataListItem item in dataliste1.Items)
{
  RadioButtonList liste = item.FindControl("rdoList") as RadioButtonList;
  foreach(ListItem rdoItem in liste.Items)
  {
    bool selected = rdoItem.Selected;
  }
}

Mvh
Avatar billede kolme Nybegynder
20. juli 2006 - 10:37 #3
Tak for svaret. Jeg anvender radiobuttons ikke radiobuttonlist, hvordan skal jeg så få fat på værdien af den valgte?
Avatar billede snepnet Nybegynder
20. juli 2006 - 10:40 #4
Så kan du bare tage fat i den enkelte - baseret på dens id.

RadioButton rdo = item.FindControl("ditradiobuttonid") as RadioButton;

Mvh
Avatar billede kolme Nybegynder
21. juli 2006 - 10:32 #5
Igen tak. Jeg kan læse rdo.Text, men jeg kan ikke undersøge om tlf1 eller tlf2 er checked (De er grupperet)
Avatar billede kolme Nybegynder
21. juli 2006 - 10:34 #6
Undskyld, der blev navngivningen rodet sammen. Håber I kan gennemskue hvad jeg mener alligevel
Avatar billede snepnet Nybegynder
21. juli 2006 - 10:41 #7
Kan du ikke lige vise templaten?
Mvh
Avatar billede kolme Nybegynder
21. juli 2006 - 11:42 #8
Mener du som HTML?:

---------------


<ItemTemplate>
                                                <P>&nbsp;</P>
                                                <P>
                                                    <asp:Label id=lblOverskrift runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Navn") %>' Font-Bold="True">
                                                    </asp:Label>&nbsp;
                                                    <asp:Label id=Label1 runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ID") %>'>
                                                    </asp:Label></P>
                                                <P>
                                                    <asp:RadioButton id=RadioButton1 runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "tlf1") %>' GroupName="tlf">
                                                    </asp:RadioButton></P>
                                                <P>
                                                    <asp:RadioButton id=RadioButton2 runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "tlf2") %>' GroupName="tlf">
                                                    </asp:RadioButton></P>
                                            </ItemTemplate>


----------
Avatar billede snepnet Nybegynder
21. juli 2006 - 12:02 #9
Så kan du hente dem for sig sådan her:
RadioButton rdo1 = item.FindControl("RadioButton1") as RadioButton;
RadioButton rdo1 = item.FindControl("RadioButton2") as RadioButton;
Mvh
Avatar billede kolme Nybegynder
21. juli 2006 - 12:17 #10
Ok, så har jeg vist formuleret mig dårligt. Jeg kan nemlig godt få fat i rdo1.Text, men hvordan undersøger jeg hvilken af der er checked?
Avatar billede snepnet Nybegynder
21. juli 2006 - 12:31 #11
Du kan bare spørge på dem:
RadioButton rdo1 = item.FindControl("RadioButton1") as RadioButton;
bool checked = rdo1.Checked;
Mvh
Avatar billede snepnet Nybegynder
21. juli 2006 - 12:37 #12
Men altså ... Du kan jo også benytte dig af en RadioButtonList istedet, og så hente få det valgte item med
ListItem item = someRadioButtonList.SelectedItem;
Mvh
Avatar billede kolme Nybegynder
21. juli 2006 - 12:42 #13
Det forsøgte jeg også først (at anvede Radiobuttonlist), men jeg havde problemer med at hælde data i, da det er værdier fra to forskellige attributter.
Avatar billede kolme Nybegynder
21. juli 2006 - 12:55 #14
Jeg har lavet følgende:

-------------------


            foreach(DataListItem item in dlSpec.Items)
            {
                RadioButton rdoSpec1 = item.FindControl("Radiobutton1") as RadioButton;
                RadioButton rdoSpec2 = item.FindControl("Radiobutton2") as RadioButton;
                bool Spec1 = rdoSpec1.Checked;
                bool Spec2 = rdoSpec2.Checked;

                Response.Write(rdoSpec1.Text + " - " + rdoSpec2.Text);

                if (Spec1 == true)
                {
                    Response.Write(rdoSpec1.Text);
                }
                if (Spec2 == true)
                {
                    Response.Write(rdoSpec2.Text);
                }
                if (Spec1 == false && Spec2 == false)
                {
                    Response.Write("Ingen valgte");
                }
                   
            }


-----

Jeg kan se at den rigtigt nok fanger teksten for de to radiobuttons, men jeg kan ikke - ud fra ovenstående - undersøge om én af dem er valgt. Den skriver  "Ingen valgte" hver gang...
Har du mod på, at hjælpe mig endnu en gang? :-)
Avatar billede snepnet Nybegynder
21. juli 2006 - 13:10 #15
I hvilket event har du den viste kode kørende, og har du sikret dig at du ikke databinder hver gang?
Mvh
Avatar billede kolme Nybegynder
21. juli 2006 - 13:18 #16
Hovsa^2!
Det virker fint nu. Jeg databindede hver gang jeg loadede siden. Er nu ordnet med en if (!AutoPostback).

Takker mange gange!!
Smid et svar :-)
Avatar billede snepnet Nybegynder
21. juli 2006 - 13:25 #17
Kommer her :o)
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