Avatar billede gurvic Nybegynder
22. maj 2004 - 08:52 Der er 1 løsning

ændre tal fra database inden de vises i en repeater

Hejsa
jeg har nu endnu et problem med min opskrifthjemmeside.
Jeg vil gerne have lavet sådan at der er en dropdownlist som indeholder tallene 1, 2 og 4. Det gælder for personer. Alle opskrifter er gemt til 4 personer i databasen. Hvordan gør jeg sådan at når man istedet vælger 2 personer, så skal den kolonne der hedder antal deles med 2 inden den vises.

Jeg får vist opskrifterne sådan her:

<asp:Repeater id="indData" runat="server">
<headertemplate>
Ingredienser:
</headertemplate>

<itemtemplate>
<table>
<tr>
<td><%# DataBinder.Eval(Container.DataItem,"antal")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"dosistype")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"ingrediensnavn")%></td>
<td><%# DataBinder.Eval(Container.DataItem,"typenavn")%></td>
</tr>
</table>
   
</itemtemplate>
</asp:Repeater>
altså i en repeater, det der vises her er ingredienserne. Det er altså den her: <td><%# DataBinder.Eval(Container.DataItem,"antal")%></td> der skal deles med to hvis altså to er valgt.

Håber i kan hjælpe.
programmerer i øvrigt i c#
Avatar billede gurvic Nybegynder
23. maj 2004 - 11:24 #1
Fandt selv en løsning:
her er koden til det:
           
                    sql_ind ="SELECT ingrediens.ingrediensnavn, type.typenavn, dosis.dosistype, opskriftingrediens.antal FROM ingrediens, type, dosis, opskriftingrediens WHERE ingrediens.ingrediensid=opskriftingrediens.ingrediensid AND type.typeid=opskriftingrediens.typeid AND dosis.dosisid=opskriftingrediens.dosisid and opskriftingrediens.opskriftsid= " + Request.QueryString["id"] + " ";
                   
              command_ind = new OleDbCommand(sql_ind, objConnection);
              indReader = command_ind.ExecuteReader();

                    ArrayList ArrIng = new ArrayList();
                   

        //når 1 er valgt
        if (antalPersoner.SelectedIndex==2)
        {
                while (indReader.Read())
                {
                double douDiv;
                douDiv = (indReader.GetInt32(3)) / 4.0;
                  ArrIng.Add((douDiv + " " + indReader.GetString(2) + " " + indReader.GetString(0) + " " + indReader.GetString(1) + "<br>"));
                }
                repeaterTable.DataSource = ArrIng;
                repeaterTable.DataBind();
        }
        else
        {
        //hvis 2 er valgt
        if (antalPersoner.SelectedIndex==1)
          {                         
                    while (indReader.Read())
                    {
                        double douDiv;
                            douDiv = (indReader.GetInt32(3)) / 2.0;
                  ArrIng.Add((douDiv + " " + indReader.GetString(2) + " " + indReader.GetString(0) + " " + indReader.GetString(1) + "<br>"));
               
                    }
                    repeaterTable.DataSource = ArrIng;
                    repeaterTable.DataBind();
                            }
            else
            {
                        while (indReader.Read())
                    {
                    ArrIng.Add((indReader.GetInt32(3) + " " + indReader.GetString(2) + " " + indReader.GetString(0) + " " + indReader.GetString(1) + "<br>"));
               
                    }
                    repeaterTable.DataSource = ArrIng;
                    repeaterTable.DataBind();           
            }
           
           
       
        }
           
               

                    indReader.Close();       
                           
og her er html'en
Antal Personer:
<ASP:dropdownlist id="antalPersoner" OnSelectedIndexChanged="Page_Load" autoPostBack="true" runat="server">
<ASP:listitem>
4
</ASP:listitem>
<ASP:listitem>
2
</ASP:listitem>
<ASP:listitem>
1
</ASP:listitem>
</ASP:dropdownlist>



</center>
<br>
Ingredienser
<br>
<ASP:repeater id="repeaterTable" runat="server">
<itemtemplate>
<%#Container.DataItem%>
</itemtemplate>
</ASP:repeater>
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