jak wyciagnac rok w repaterze

0

Mam baze danych i tabelke, jedno z pol to data,
w code behind wczytuje calosc do repeatera
a w pliku aspx mam

<asp:Repeater ID="Repeater1" runat="server">
<ItemTemplate>
<img src="Images/2008/<%#Eval("id")%>_mini.jpg" >
</ItemTemplate>
</asp:Repeater>

Chcialabym aby zamiast 2008 podstawial sie rok z kolumny data
bede bardzo wdzieczna za pomoc

0

Zdefiniuj sobie kontrolkę np tak:

<img src="Images/2008/bmp.JPG" runat="server" id="bmp"/>

A w kodzie w metodzie OnLoad dodaj taką linijkę:

this.bmp.Src = String.Format(@"Images/{0}/bmp.JPG", DateTime.Now.Year);

Powinno śmigać ;)

0

ale to nie jest pojedynczy obrazek,
cały problem polega na tym ze jest on zawarty repeater,
w kodzie cały wynik zapytania jest wczytywany do repeater,
wiec nie mam za bardzo pola do manewru w code behind

0

wpadłam na pomysł,
moge wyodrebnic rok juz na poziomie zapytania SQL,
ktoś wie jak to zrobić?

0

A chcesz go wyodrębnić ze string-a czy jest zapisany w jakiejś kolumnie? Trochę opisz bardziej opisz problem oraz to co masz, bo trudno coś wywnioskować.

0

Zobacz coś takiego

<asp:Image ID="Image1" runat="server" ImageUrl='<%# OperacjaNaDacie((DateTime)Eval("nazwa_kolumny_z_data"), (int)Eval("id")) %>' />

I teraz w code-behind masz funkcje:

    protected string OperacjaNaDacie(DateTime data, int id)
    {
          return "Images/"+data.Year.ToString()+"/"+id+"_mini.jpg";
    }

Powinno zadziałać:)

0

znalazleam bardzo proste rozwiazanie mojego problemu,
tzn wyodrębnienie daty juz na poziomioe zapytania SQL
SELECT *, Year(Data) AS data FROM tabela
wkazdym razie dziekuje za odpowiedz na pewno sie przyda w innych przypadkach
tzn gdy nie da sie prosto przygotowac danycgh w zapytaniu SQL

0

Na tym polega sztuczka by dobrze przygotowac dane juz na poziome sql'a. Jak widze projekty, gdzie dziesiatki tysiace rekordow sa wyciagane z bazy, a nastepnie jakies operacje przeprowadzane sa po stronie aplikacji, tylko po to by ostatecznie pokazac 10 wierszy, to mnie krew zalewa... a klienci marudza na wydajnosc :P
Niestety acz programista .net musi miec opanowanego sql'a w miare dobrze i trzeba do tego przysiasc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1