ERLEDIGT
JA
JA
ANTWORTEN
1
1
ZUGRIFFE
539
539
EMPFEHLEN
-
06.05.09 01:25 #1
- Registriert seit
- Feb 2004
- Beiträge
- 48
Hallo,
es ist schwer, für das Problem eine geeignete Überschrift zu finden.
Es geht um Foldendes:
Ich habe eine ASP.Net Application (.Net 2.0), mit der in einer Datenbank gesucht werden kann. In der Datenbank sind Dateinamen und deren Speicherort (etc.) hinterlegt.
Die Suchfunktion gibt ein DataSet zurück, welches an eine DataList gebunden wird.
Soweit funktioniert alles.
Nun wird in der DataList noch ein ImageButton angezeigt, mit dem der Nutzer die angezeigten Dateien in eine Art Warenkorb legen kann. Wenn er das macht, soll sich der ImageButton ändern (ein anderes Bild anzeigen). Hier beginnen die Probleme.
Ich habe den Button und er fügt auch die Dateien in den "Warenkorb" ein. Da ich nach der SQL Anfrage die ASP Seite neu lade (Response.Redirect) um ein mehrfaches Absenden des Formulars zu verhindern (z.B. durch Strg - F5), muss ich für jeden Datensatz in der DataList prüfen, ob er im "Warenkorb" vorhanden ist und das Bild des ImageButtons ändern.
Ich hoffe, dass verständlich ist, was ich meine.
Auszug aus der aspx:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
<asp:DataList ID="searchResultDataList" runat="server"> <ItemTemplate> <div class="result"> <h3 class="filename"><%# DataBinder.Eval(Container.DataItem,"Filename") %></h3> <p class="left"> <strong>Medium: </strong> <%# DataBinder.Eval(Container.DataItem,"Medium") %><br /> <strong>Pfad:</strong> <%# DataBinder.Eval(Container.DataItem,"Path") %><br /> <strong>Erstellt am:</strong> <%# DataBinder.Eval(Container.DataItem,"Creation") %> <strong>Größe:</strong> <%# DataBinder.Eval(Container.DataItem,"Size") %> byte </p> <p class="right"> <asp:ImageButton ID="addFileImageButton" CommandName="AddFileToRestore" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"file_id") %>' runat="server" ImageUrl="~/pics/Add.png" OnClick="addFileImageButton_Click" /></p> <p class="break"> </p> </div> </ItemTemplate> </asp:DataList>
Ich bin recht neu in der ASP Welt, mit PHP habe ich mehr Erfahrungen, weshalb mir ASP nicht wirklich leicht von der Hand geht. Kann ich für dieses Problem überhaupt eine Datalist nehmen?
MfG
Frank
-
06.05.09 10:21 #2
- Registriert seit
- Feb 2004
- Beiträge
- 48
Hab selber eine Lösung gefunden.
Für alle die es interessiert:
DataList hat ein Event namens "ItemDataBound", welcher für jeden Datensatz gefeuert wird, der an das Steuerelement gebunden wird.
Über den zweiten Paremeter des Events, kommt man an die Daten und an die Controls im ItemTemplate ran. Der Rest ist if then else
Hier der Code:
Code :1 2 3 4 5 6 7 8 9 10 11
protected void searchResultDataList_ItemDataBound(object sender, DataListItemEventArgs e) { DataRowView dr = (DataRowView)e.Item.DataItem; if (r.ContainsMediumItem(Convert.ToInt32(dr.Row["file_id"]),"File")) { ImageButton img = (ImageButton)e.Item.FindControl("addFileImageButton"); img.ImageUrl = "~/pics/Minus.png"; img.CommandName = "RemoveFileFromRestore"; } }
Zur Erklärung:
- "r" ist ein Objekt, in dem eine ArrayList gespeichert wird
- wenn Datei mit der file_id in der ArrayList steckt, dann ändere ImageButton
- ContainsMediumItem ist einfach nur eine Suchfunktion in r
Tschau Frank
Ähnliche Themen
-
ASP.NET und C# DataList
Von soccer1981 im Forum .NET Application und Service DesignAntworten: 2Letzter Beitrag: 27.03.07, 16:14 -
Datalist - AccessDataSource Problem
Von Domsi im Forum ASPAntworten: 0Letzter Beitrag: 09.08.06, 20:33 -
DataList (letztes Item)
Von Julian Maicher im Forum .NET ArchivAntworten: 0Letzter Beitrag: 25.03.05, 12:46 -
Checkboxen in DataList/Grid sind immer false
Von r3wDy im Forum .NET ArchivAntworten: 4Letzter Beitrag: 28.10.04, 10:17 -
Aus DataList manuell einzelne Zeilen auslesen
Von gravis im Forum .NET ArchivAntworten: 1Letzter Beitrag: 10.09.04, 15:06





Zitieren
Login





