Avatar billede hyggesen Nybegynder
30. marts 2005 - 11:29 Der er 5 kommentarer og
1 løsning

Dynamisk billede i repeater!

Jeg skal lave en kode der i en repeater henter et Ordre Fase nr fra en ordre i en DB og ændrer denne string (eks. "1" eller "2") til et billede.

Jeg kan ikke lige se hvordan denne kode skal skrives, men er kommet frem til noget lignende dette:

Code-Behind:

protected string ordre_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        if (e.Item.ToString() == "1")
        {
            Response.Write("2");
            return "../grafik/Ikoner/Blaa.jpg";
        }
        else
            return "../grafik/Ikoner/Roed.jpg";
    }


.aspx siden:

<asp:Label runat="server" ID="lblOrdre" Text="Ingen kunder fundet!" CssClass="InForm" /><br><br>
           
            <asp:Repeater id="Ordre" OnItemCreated="ordre_ItemDataBound" runat="server">

            <HeaderTemplate>
            <img src="../grafik/TabBox/Seperator.jpg"><br>
            <table width="490" border="0" cellspacing="0" cellpadding="0" class="InForm">
            <tr>
            <td align="left" valign="top">
            <BR>
            </HeaderTemplate>
            <ItemTemplate>
            <%#DataBinder.Eval(Container.DataItem, "OrdreFaseNr")%> -
            Ordrenr: <%#Container.DataItem("Ordreid")%> -
            Dato modtaget: <%#Container.DataItem("DatoModtaget")%> -
            <asp:LinkButton Id="lbomi" runat="server" ToolTip="Klik her for at se flere informationer omkring denne ordre!" OnClick="OrdreMereInfo" CommandName='<%#Container.DataItem("OrdreID")%>' CssClass="InForm" Text="mere information"></asp:LinkButton><BR>
            </ItemTemplate>
            <FooterTemplate>
            </td>
            </tr>
            </table>
            </FooterTemplate>
           
            </asp:Repeater>
Avatar billede hyggesen Nybegynder
30. marts 2005 - 11:32 #1
Ved godt jeg ikke kan returnere en string i ordre_ItemDataBound, men det er for at vise princippet...! :-)
Avatar billede snepnet Nybegynder
30. marts 2005 - 11:40 #2
Du kan putte sådan et billede her ind i din repeater :

<asp:Image id="someImage" runat="server" ImageUrl='<%# int.Parse(Container.DataItem("someColumn").ToString() == 1 ? "~/grafik/Ikoner/Blaa.jpg" :  "~/grafik/Ikoner/Roed.jpg") %>'></asp:Image>

mvh
Avatar billede hyggesen Nybegynder
30. marts 2005 - 11:55 #3
Yes! Men jeg skal desværre have mere end en mulighed, dvs. en ordrefase kan være {1,2,3,4,5} og hver enkelt har sit eget billede.

Sorry..
Avatar billede snepnet Nybegynder
30. marts 2005 - 12:01 #4
arh sorry der hyggesen, så samler du det bare op i din itemDataBound og gør noget i denne stil :

if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
  int someId = (int)((DataRowView)e.Item.DataItem)["someColumn"];
  switch(someId)
  {
      case x :
        Image img = (Image)e.Item.FindControl("someImage");
        img.ImageUrl = "...";
        break;
      case y :
        ...
        break;
      default :
        ...
        break;
  }
}

kan du bruge sådan en model til noget ?

mvh
Avatar billede hyggesen Nybegynder
30. marts 2005 - 12:07 #5
Ja, helt sikkert...! :-)

Men jeg har bare ingen anelse om hvordan jeg skal strikke det sammen...! :-)

Jeg prøver mig frem...!
Husk et svar..!

Igen tak for hjælpen..!
Avatar billede snepnet Nybegynder
30. marts 2005 - 15:44 #6
du skal nok få det til at svinge... bare læg et Image ind i din template til repeateren, og få styr på hvor du skal hente oplysningerne i din datakilde ... så skulle du kunne udfylde hullerne i det jeg skrev :o)
ellers ... bare spørg løs !
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