【发布时间】:2010-10-22 03:50:48
【问题描述】:
我有一个显示数据库数据的网格视图。数据库存储项目的图像文件名(字符串)等。
我在 EDIT 视图中显示了 fileupload 控件,它可以很好地上传文件。
问题是,我想更新数据库中的图像文件名,但我不确定如何将数据获取到 gridview 用于更新数据库的文本框控件。文本框控件我已将可见性设置为隐藏。这是aspx代码:
<asp:TemplateField HeaderText="Image" SortExpression="Image">
<EditItemTemplate>
<asp:TextBox ID="txtImage" runat="server" Text='<%# Bind("Image") %>' Visible="False" OnTextChanged="txtImage_TextChanged"></asp:TextBox>
<asp:FileUpload ID="FileUpload1" runat="server" />
</EditItemTemplate>
<ItemTemplate>
<asp:Image ID="Image1" runat="server" Width="50px" AlternateText='<%# Eval("Image") %>' ImageUrl='<%# "images/hardware/" + Eval("Image") %>' />
</ItemTemplate>
</asp:TemplateField>
这里是将文件存储到服务器上的函数,并将文件名放入变量中:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
GridViewRow row = GridView1.Rows[e.RowIndex];
FileUpload fileUpload = row.Cells[0].FindControl("FileUpload1") as FileUpload;
if ( fileUpload != null && fileUpload.HasFile)
{
strFileName = fileUpload.FileName;
fileUpload.SaveAs(Server.MapPath("images/hardware/" + strFileName));
TextBox txtImage = row.Cells[0].FindControl("txtImage") as TextBox;
txtImage.Text = strFileName;
}
}
那么我从这里去哪里呢?我认为更新已经发生还是什么?因为“txtImage.Text”没有更新数据库……我是不是在这里出了问题?我可以在此函数的文本框中操作值,然后再将其保存到数据库中,对吗?感谢您对此的帮助。
【问题讨论】:
标签: asp.net image gridview file-upload