Hi sri.s,
I have created sample that full-fill your requirement.
CREATE TABLE [File]
(
Id INT IDENTITY PRIMARY KEY,
[File] VARCHAR(50)
)
GO
-------------------------------------
INSERT INTO [File] VALUES('Test.jpg')
INSERT INTO [File] VALUES('Test.pdf')
INSERT INTO [File] VALUES('Test.doc')
HTML
<div>
<asp:GridView runat="server" ID="gvFiles" AutoGenerateColumns="false" AutoGenerateDeleteButton="true"
AutoGenerateEditButton="true" OnRowCancelingEdit="OnRowCancelingEdit" OnRowDeleting="OnRowDeleting"
OnRowEditing="OnRowEditing" OnRowUpdating="OnRowUpdating">
<Columns>
<asp:TemplateField HeaderText="ID" Visible="false">
<ItemTemplate>
<asp:Label ID="lblId" Text='<%#Eval("ID") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="lblEditId" Text='<%#Eval("ID") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Files">
<ItemTemplate>
<asp:Label ID="lblFile" Text='<%#Eval("File") %>' runat="server" />
</ItemTemplate>
<EditItemTemplate>
<asp:FileUpload ID="fuEditFile" runat="server" />
<asp:RequiredFieldValidator ID="rfvEditFile" ErrorMessage="Required" ControlToValidate="fuEditFile"
runat="server" ForeColor="Red" Display="Dynamic" />
<asp:RegularExpressionValidator ID="revEditFile" ValidationExpression="([a-zA-Z0-9\s_\\.\-:])+(.doc|.jpg|.pdf)$"
ControlToValidate="fuEditFile" runat="server" ForeColor="Red" ErrorMessage="Please select only jpg/doc/pdf file."
Display="Dynamic" />
<asp:Label ID="lblEditFile" Text='<%#Eval("File") %>' runat="server" />
</EditItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
Code
string str = ConfigurationManager.ConnectionStrings["conString"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
BindFiles();
}
}
private void BindFiles()
{
SqlConnection con = new SqlConnection(str);
SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM [File]", con);
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);
gvFiles.DataSource = dt;
gvFiles.DataBind();
}
protected void OnRowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
gvFiles.EditIndex = -1;
BindFiles();
}
protected void OnRowEditing(object sender, GridViewEditEventArgs e)
{
gvFiles.EditIndex = e.NewEditIndex;
BindFiles();
}
protected void OnRowDeleting(object sender, GridViewDeleteEventArgs e)
{
GridViewRow row = gvFiles.Rows[e.RowIndex];
int id = Convert.ToInt32((row.FindControl("lblId") as Label).Text);
string fileName = (row.FindControl("lblFile") as Label).Text;
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand("DELETE FROM [File] WHERE Id = @Id", con);
cmd.Parameters.AddWithValue("@Id", id);
con.Open();
cmd.ExecuteNonQuery();
string file = Server.MapPath("~/Files/" + fileName);
if (fileName != null || fileName != string.Empty)
{
if (File.Exists(file))
{
File.Delete(file);
}
}
BindFiles();
}
protected void OnRowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = gvFiles.Rows[e.RowIndex];
int id = Convert.ToInt32((row.FindControl("lblEditId") as Label).Text);
FileUpload file = row.FindControl("fuEditFile") as FileUpload;
string fileName = string.Empty;
if (file.HasFile)
{
fileName = file.FileName;
file.SaveAs(Server.MapPath("~/Files/") + fileName);
}
SqlConnection con = new SqlConnection(str);
SqlCommand cmd = new SqlCommand("UPDATE [File] SET [File] = @File WHERE Id = @Id", con);
cmd.Parameters.AddWithValue("@Id", id);
cmd.Parameters.AddWithValue("@File", fileName);
con.Open();
cmd.ExecuteNonQuery();
gvFiles.EditIndex = -1;
BindFiles();
}
Screenshot
