Hi!
Ich möchte mit einer DataList (oder ähnliches) Bilder von der Datenbank anzeigen lassen. Aber, wie funktioniert das eigentlich? Der Code der DataList auf der Webseite sieht so aus:
XML-Daten
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| <asp:DataList ID="DataList1" runat="server" CaptionAlign="Top" DataKeyField="Bild" DataSourceID="VorlesungsSource" BackColor="#DEBA84" BorderColor="#DEBA84" BorderStyle="None" BorderWidth="1px" CellPadding="3" CellSpacing="2" GridLines="Both" RepeatColumns="3" RepeatDirection="Horizontal"> <FooterStyle BackColor="#F7DFB5" ForeColor="#8C4510" /> <ItemStyle BackColor="#FFF7E7" ForeColor="#8C4510" /> <SelectedItemStyle BackColor="#738A9C" Font-Bold="True" ForeColor="White" /> <HeaderStyle BackColor="#A55129" Font-Bold="True" ForeColor="White" /> <ItemTemplate> Bild: <asp:image ID="Bildimage" runat="server" imageurl='<%# ShowImage(Eval("Bild")) %>' Width="50" Height="50" /> Titel: <asp:Label ID="TitelLabel" runat="server" Text='<%# Eval("Titel") %>' /> Datum: <asp:Label ID="DatumLabel" runat="server" Text='<%# Eval("Datum") %>' /> Bemerkung: <asp:Label ID="BemerkungLabel" runat="server" Text='<%# Eval("Bemerkung") %>' /> </ItemTemplate> </asp:DataList> |
Bei dem Image rufe ich eine Methode ShowImage auf. Der C#-Code dazu sieht folgendermaßen aus:
C#-Quelltext
1: 2: 3: 4: 5:
| public String ShowImage(object o) { return "http://localhost:50549/Kinderuni_v01/ShowImage.aspx?ShowImage="; } |
Ich rufe die Seite ShowImage auf, die mir das Bild aus der Datenbank holen soll. Der Code zu der Seite sieht so aus:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| protected void Page_Load(object sender, EventArgs e) { String value = this.Request.QueryString.Get("showImage"); KUDBDataContext db = new KUDBDataContext();
var fotos = (from f in db.Fotos select f);
byte[] buffer = null;
foreach (Foto foto in fotos) {
buffer = foto.Bild.ToArray(); }
Response.ContentType = "image/jpeg"; Response.BinaryWrite(buffer); } |
Das Problem ist jetzt, dass immer das gleiche Bild in allen Feldern angezeigt wird. Ich müsste praktisch die ID des Fotos irgendwie mit übergeben und anhand der ID das jeweilige Bild aus der Datenbank holen, oder? Aber, wenn das so ist, dann weiß ich nicht, wie ich das jetzt machen soll. Kann mir einer sagen, wie das funktioniert? Oder kennt vielleicht noch jemand eine andere Methode Bilder aus der Datenbank anzeigen zu lassen?
Danke im Voraus!