Link to home
Start Free TrialLog in
Avatar of AXISHK
AXISHK

asked on

How to retrieve a deleted row in GridView

I have bounded a DataGrid to reflect a particular files in a folder. I'm using Visual Studio 2005 with VB coding.

1. Have any idea how to capture the filename when user click the "Delete" Button in GridView.
2. Is it possilbe to include more parameter in DataNavigateUrlFormatString, say ="~/ListFolder.aspx?idir={0}",ifile={2} />

Thanks.


Protected Sub Page_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreRender

        Dim upFolder As String = MapPath("~/DMS/")
        Dim dir As New System.IO.DirectoryInfo(upFolder)

        rptFiles.DataSource = dir.GetFiles()
        rptFiles.DataBind()

        DirTree.DataSource = dir.GetDirectories
        DirTree.DataBind()

    End Sub
        <asp:gridview
        id="dirTree"
       autogeneratecolumns="false"
       GridLines="None"
          Runat="server" HorizontalAlign="Left">
            <Columns>        
          <asp:HyperLinkField
            DataTextField="Name"
            DataNavigateUrlFields="Name"
            DataNavigateUrlFormatString="~/ListFolder.aspx?idir={0}" />
          </Columns>
    </asp:gridview>
Avatar of QPR
QPR
Flag of New Zealand image

Do you want to delete the record from the db and also an associated file from the filesystem?
I ask as I have just done exactly that and could post my code
Avatar of AXISHK
AXISHK

ASKER

Basically, not touching any Database, only retrieve the files from specifiy path and show on GridView and enable the "Delete" button per button. AFterwards, I willl delete the files from the server.

Thanks.

This is very over simplified as my code got the doc filename and path from the db based on the DocID for that particular row in the gridview.
You may have to do something like.....
<asp:Button CommandName=<%#eval("DocPath_name")  %> ID="button1" runat="server" Text="Delete" OnClick="button1_Click" />
then in your code behind

Imports System.IO
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
              File.Delete(Server.MapPath(sender.CommandName))
End Sub
the variable DocPath_name would be populated row by row based on the path to the folder and the filename
OnClick you would pass this value to the code behind which would then pass it to the File.Delete method
Avatar of AXISHK

ASKER


I tried to pu the control under the "Columns" but doesn't work. It seems that GridView don't support the bind of this control. Any idea. Can you show me how you bind the selected column on GridView ?

Thanks

  <Columns>        
          <asp:HyperLinkField
            DataTextField="Name"
            DataNavigateUrlFields="Name"
            DataNavigateUrlFormatString="~/ListFolder.aspx?idir={0}" />
          </Columns>
Avatar of AXISHK

ASKER

Protected Sub dirTree_RowDeleting(ByVal sender As Object, ByVal e As  
    System.Web.UI.WebControls.GridViewDeleteEventArgs) Handles rptFiles.RowDeleting

 End Sub

Bascially the event RowDeleting is called for my previous posted code but I don't know how to retrieve the file name binded to the row of the GridView. Any idea ?

Again, if you think there is a way to get around of this, I could modify my coding on GridView.
tks
Which bit is the problem?

DataNavigateUrlFormatString="~/ListFolder.aspx?idir={0}"  
this bit?
ASKER CERTIFIED SOLUTION
Avatar of GreymanMSC
GreymanMSC

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of AXISHK

ASKER

thanks. Sound like this is a way to go.

On more things, how to change the "DataNavigateUrlFormatString" per row before bind to GridView using the RowDataBound event. I could access the content of the DataNavigaterUrlField but I want to change the NavigterUrlFormatString dynamically.

Thanks again.
Forced accept.

Computer101
Community Support Moderator