У меня есть сетка, которая отображает данные из базы данных. База данных хранит имя файла изображения (строку) среди прочего для элемента.
У меня есть элемент управления загрузкой файлов, отображаемый в режиме редактирования, и он прекрасно загружает файл.
Проблема в том, что я хочу обновить имя файла изображения в базе данных, и я не уверен, как получить данные в элемент управления textbox, который 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" не обновляет базу данных ... Я здесь не в порядке или что-то? Я могу манипулировать значениями в текстовом поле в этой функции, прежде чем оно будет сохранено в БД, верно? Спасибо за вашу помощь в этом.