Slike: brisanje i mijenjanje imena

Ispod je kod kojim prikazujem sve slike jednog foldera u datalistcontroli. Kako da dodam pored njih neko dugme ili link koji briše tu istu sliku.
Isto tako bi trebalo pored svake da stoji dugme koje omogućava postavljanje te slike kao početne, a biti će početna ako joj promjenim ime u “1”.
Ako već postoji slika istog imena trebala bi je zamjeniti ili promjeniti ime u recimo 1a.
Najbolje se snalazim s primjerima

Code:
Protected Sub dlMaleSlike_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlMaleSlike.ItemDataBound
imeSlike = CType(e.Item.DataItem, System.IO.FileInfo).Name
putDoSlike = “…/images/accommodation/” + folderName + “/” + imeSlike
strMaleSlike = "" + imeSlike + ""
DirectCast(e.Item.FindControl(“lblKodZaMaleSlike”), Label).Text = strMaleSlike
End Sub

Private Sub BindDataToList(ByVal dirWithImages As String)
        Dim di As New DirectoryInfo(Server.MapPath("../images/accommodation/" & dirWithImages)) 
        Me.dlMaleSlike.DataSource = di.GetFiles()
        Me.dlMaleSlike.DataBind()      
End Sub

U templateu od DataList kontrole dodaj button koji ima CommandArgument namjesten na ime fajla. Na onClick onda pogledas ime fajla i napravis vec sta treba.

Druga metoda je da koristim hyperlink button, kojemu formiras link poput ovog : lista.aspx?brisi=ime_slike (ali ovaj naci ima vec sigurnosnu implikaciju - bilo ko moze kreirati takav link i izbrisati slike)

[quote=“hudo”]
Druga metoda je da koristim hyperlink button, kojemu formiras link poput ovog : lista.aspx?brisi=ime_slike (ali ovaj naci ima vec sigurnosnu implikaciju - bilo ko moze kreirati takav link i izbrisati slike)[/quote]

Da, puno jednostavnije ti je napraviti neku stranicu tipa lista.aspx kojoj preko parametara prosljeđuješ ime slike…
Al obavezno si tu stranicu zaštiti u web.config datoteci od neautoriziranih korisnika.

Da, ova stranica se već nalazi u zaštićenom folderu, ali sam se poveo za prvim prijedlogom i to napravio ovako:
.aspx buttoni u DataList kontroli dlSlike
<asp:Button Width=“55px” ID=“btnObrisi” runat=“server” Text=“Obriši” OnCommand=“dlSlike_DeleteCommand”/>
<asp:Button class=“ljevoGore” Width=“55px” ID=“btnRename” runat=“server” Text=“Glavna” OnCommand=“dlSlike_RenameCommand”/>

.aspx.vb

 Protected Sub dlSlike_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles dlSlike.ItemDataBound

 imeSlike = CType(e.Item.DataItem, System.IO.FileInfo).Name
 putDoSlike = "../images/accommodation/" + folderName + "/" + imeSlike
 DirectCast(e.Item.FindControl("btnObrisi"), Button).CommandArgument = Server.MapPath(putDoSlike)
 DirectCast(e.Item.FindControl("btnRename"), Button).CommandArgument = Server.MapPath(putDoSlike)
 DirectCast(e.Item.FindControl("btnRename"), Button).CommandName = imeSlike      
    End Sub

 Protected Sub dlSlike_DeleteCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs) Handles dlSlike.DeleteCommand
        File.Delete(e.CommandArgument)
End Sub

    Protected Sub dlSlike_RenameCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.CommandEventArgs) Handles dlSlike.EditCommand
            File.Move(Server.MapPath("../images/accommodation/" & folderName) & "/1.jpg", Server.MapPath("../images/accommodation/" & folderName) & "/zs200gy-2.jpg")
            File.Move(e.CommandArgument, Server.MapPath("../images/accommodation/" & folderName) & "/1.jpg")
            File.Move(Server.MapPath("../images/accommodation/" & folderName) & "/zs200gy-2.jpg", e.CommandArgument)
         ' Rebind the data to the DataList
        BindDataToList(folderName)
        Response.Redirect(Request.RawUrl) 'ovim tu retkom pokušavam odraditi refresh slika, badave. Slike promjene ime, ali ostaju na istim mjestima???
    End Sub

Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja