hi
i am list the file from folder and binded it to grid control and also
provided the delete option.when i delete file folowing errors cums
Index was out of range. Must be non-negative and less than the size of
the collection.
Parameter name: index
when i trace the program i got erorr in following line
Dim fileName As String =
(CType(GridView1.Rows(e.RowIndex).FindControl("FileLink"),
HyperLink)).Text
here is my code
<fieldset style="width: 804px" align="center">
<legend>Uploading and Deleting Files via Form</legend>
<div align="left" style="text-align: center">
<form id="form1" runat="server">
<asp:Label ID="labelStatus" runat="server"></asp:Label><br />
<asp:FileUpload ID="FileUpload1" runat="server" /><br />
<asp:Button ID="Button1" runat="server" Text="Upload"
OnClick="Button1_Click" /><br /><br />
<asp:GridView ID="GridView1" runat="server" DataSource="<%#
GetUploadList() %>" OnRowDeleting="GridView1_RowDeleting"
AutoGenerateColumns="False" >
<Columns>
<asp:TemplateField HeaderText="Uploaded File">
<ItemStyle HorizontalAlign="Center" Width="70%" />
<ItemTemplate>
<asp:HyperLink
ID="FileLink"
NavigateUrl='<%# "/vsjayanti/pdffiles/" +
Container.DataItem.ToString() %>'
Text='<%# Container.DataItem.ToString() %>'
runat="server" Target="_blank" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Delete?">
<ItemStyle HorizontalAlign="Center" Width="30%" />
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server"
CausesValidation="False" CommandName="Delete"
OnClientClick='return confirm("Are you sure you
want to delete this entry?");'
Text="Delete?" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</div>
</fieldset>
Imports System.IO
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Me.Load
End Sub
Protected Overrides Sub OnLoad(ByVal e As System.EventArgs)
MyBase.OnLoad(e)
If (Not IsPostBack) Then
GridView1.DataBind()
End If
End Sub
Protected Function GetUploadList() As String()
Dim folder As String = Server.MapPath("/fileupload")
Dim files() As String = Directory.GetFiles(folder, "*.pdf")
Dim fileNames(files.Length - 1) As String
Array.Sort(files)
For i As Integer = 0 To files.Length - 1
fileNames(i) = Path.GetFileName(files(i))
Next i
'dt.Rows.Count - 1
Return fileNames
End Function
Protected Sub UploadThisFile(ByVal upload As FileUpload)
If upload.HasFile Then
Dim theFileName As String = Path.Combine(Server.MapPath("/
fileupload"), upload.FileName)
upload.SaveAs(theFileName)
labelStatus.Text = "<b>File has been uploaded.</b>"
End If
End Sub
Protected Sub GridView1_RowDeleting(ByVal sender As Object, ByVal
e As System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles
GridView1.RowDeleting
e.Cancel = True
Dim fileName As String =
(CType(GridView1.Rows(e.RowIndex).FindControl("FileLink"),
HyperLink)).Text
fileName = Path.Combine(Server.MapPath("/fileupload"),
fileName)
File.Delete(fileName)
GridView1.DataBind()
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles Button1.Click
UploadThisFile(FileUpload1)
GridView1.DataBind()
End Sub
End Class