Вы можете использовать это в следующем порядке:
<asp:TemplateField HeaderText="UploadImage">
<ItemTemplate>
<asp:Image ImageUrl="~/images/1.jpg" runat="server" ID="image" /> // shown only when not in edit mode
</ItemTemplate>
<EditItemTemplate>
<asp:FileUpload ID="FileUpload1" runat="server" /> // shown only in edit mode
</EditItemTemplate>
</asp:TemplateField>
Наконец, включите следующее для входа в режим редактирования.
<asp:commandField showEditButton="true" showCancelButton="true">
Затем добавьте два события следующим образом:
protected void GridView1_RowEditing(object sender, GridViewUpdateEventArgs e)
{
gvwID.EditIndex=e.NewEditIndex;
BindGrid();
}
protected void GridView1_RowCancelEdit(object sender, GridViewUpdateEventArgs e)
{
gvwID.EditIndex=-1;
BindGrid();
}
Элемент управления FileUpload не будет автоматически сохранять загруженный файл.Чтобы сохранить файл, вам нужно использовать метод SaveAs элемента управления FileUpload.Прежде чем вы сможете использовать метод SaveAs, вам нужно получить экземпляр элемента управления FileUpload для строки, которую вы редактируете.Чтобы получить экземпляр элемента управления, вы можете подключиться к событию RowUpdating GridView.Следующий код получит экземпляр элемента управления FileUpload и сохранит загруженный файл:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
int RowID=Convert.ToInt32(gvwID.DataKeys[e.RowIndex].value);
FileUpload fileUpload = GridView1.Rows[e.RowIndex].FindControl("FileUpload1") as FileUpload;
if(fileUpload.HasFile)
{
fileUpload.SaveAs(System.IO.Path.Combine(Server.MapPath("Images"), fileUpload.FileName));
//update db using the name of the file corresponding to RowID
}
gvwID.EditIndex=-1;
BindGrid();
}
Надеюсь, это поможет ...