Avatar billede unknown_someone Juniormester
26. oktober 2004 - 17:07 Der er 8 kommentarer og
2 løsninger

if-statement i repeater

Jeg har en side hvor jeg har en repeater;

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

<asp:Repeater id="graphicrepeater" EnableViewState="false" runat="server">
  <ItemTemplate>
    <img src="images/gfxannoncer/<%#DataBinder.Eval(Container.DataItem, "gfx_file")%>" alt="" width="140" /><br />&nbsp;<br />
  </ItemTemplate>
</asp:Repeater>

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

og som får data fra følgende;

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

...
cnn.Open()
Dim oraDataReader As OracleDataReader = graphiccommand.ExecuteReader

graphicrepeater.DataSource = oraDataReader
graphicrepeater.DataBind()

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

Men nu skal der ske noget lidt andet - nemlig at der skal være tjeck på de sidste 4 tegn fra gfx_file-kolonnen og er disse .swf skal der afspilles flash i stedet for at indsætte et billede...

men hvordan gør jeg det? Jeg vil helst have den if-statement i min codebehind fil fremfor i aspx-filen.
Avatar billede snepnet Nybegynder
26. oktober 2004 - 18:17 #1
hej "unknown" :o)

jeg synes du skal gøre det i din databinding af repeateren, såhh....

1) abbonner på ItemDataBound-eventet fra repeateren.

rep.ItemDataBound += new System.Web.UI.WebControls.RepeaterItemEventHandler(this.rep_ItemDataBound);


2) i handleren af eventet kan du så gøre noget i denne stil :

private void rep_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e)
{
  if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
  {
    if(((DataRowView)e.Item.DataItem)["gfx_file"].ToString().EndsWith(".swf"))
    // dette er så en swf-ting - så der kan du gøre noget *
  } 
}


var det fint nok til at komme videre på ?

mvh
Avatar billede unknown_someone Juniormester
26. oktober 2004 - 19:16 #2
nja - forstår nu ikke vanvittig meget af dit eksempel :(

kan du evt komme med eksemplet i VB?
Avatar billede snepnet Nybegynder
26. oktober 2004 - 19:52 #3
kan jeg lige få dig til at skrive hvilket udviklingsmiljø du bruger ?
mvh
Avatar billede snepnet Nybegynder
26. oktober 2004 - 22:57 #4
(det er mere hvis du bruger f.eks. WebMatrix, Visual Studio ell. - så er der lidt tricks når der skal oprettes eventhandlere)
mvh
Avatar billede unknown_someone Juniormester
27. oktober 2004 - 11:38 #5
Homesite - jeg håndkoder :)

dog bruger jeg en lille bitte smule VS til at hjælpe, men det meste bliver håndkodet.
Avatar billede burningice Nybegynder
27. oktober 2004 - 15:06 #6
den nemmeste måde at få wired sin event på er vel at gøre det direkte i aspx-filen:

<asp:Repeater id="graphicrepeater" EnableViewState="false" runat="server" ItemDataBound="graphicrepeater_ItemDataBound">
  <ItemTemplate>
    <img src="images/gfxannoncer/<%#DataBinder.Eval(Container.DataItem, "gfx_file")%>" alt="" width="140" /><br />&nbsp;<br />
  </ItemTemplate>
</asp:Repeater>


i din codebehind har du så en metode, punkt 2 i snepnet's første kommentar
Avatar billede snepnet Nybegynder
27. oktober 2004 - 18:51 #7
enig med cyberfessor.... ved håndkodning synes jeg også det er lettere at angive det i aspx-en, men hvis du brugte visaul studio 2003 bruger den en anden model som default (den jeg viste).

2005 bruger for øvrigt den deklarative model som cyberfessor viste.

mvh
Avatar billede unknown_someone Juniormester
27. december 2005 - 10:44 #8
kommer i med et svar?
Avatar billede snepnet Nybegynder
27. december 2005 - 11:25 #9
ok :o)
mvh
Avatar billede burningice Nybegynder
27. december 2005 - 12:54 #10
svar :) og glædelig baghjul
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