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

Reply via email to