[ vinkof @ 01.08.2010. 13:50 ] @
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 = "<img src='" + putDoSlike + "' alt='" + 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
[ vinkof @ 15.08.2010. 14:20 ] @
Uradio sam to ovako, ali nakon zamjene imena slikama slike ostaju na istim pozicijama iako su stvarno promjenila ime. Ne pomaže ni višekratni refresh???:
.aspx buttoni u DataList kontroli dlSlike[CODE] <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"/>[/CODE]

.aspx.vb
[CODE] 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
[/CODE]
[ pl4stik @ 16.08.2010. 10:21 ] @
Meni se cini da ne sortirash listu pre nego je bindash na datalist... Sto ne probas da napravish jednu npr. listu od imena slika i da je bindash as is i sortirano cisto da vidish dal je to problem, pa posle menjaj imena i sta vec hoces... ako sam dobro shvatio pitanje

BTW Nekada davno sam imao tako neki problem ne secam se vise ali sam radio sa zip fajlovima i od tad uvek gledam da putanje/imena dokumenata na serveru drzim u bazi i sve da radim sa bazom, a sto manje sa files direktno
[ vinkof @ 17.08.2010. 12:05 ] @
Hvala, pl4stik. Sortira, ali je Browser keširao imena. Postupio sam prema savjetu da dodam random broj imenu slike i sad je ok

"imeslike.jpg?b=" + CStr(Rnd())