J'ai un gridview qui affiche les données d'une base de données. La base de données stocke le nom de fichier de l'image (chaîne) entre autres choses pour un article.Téléchargement d'une image via la question gridview
J'ai le contrôle fileupload dans la vue EDIT, et cela télécharge le fichier très bien. Le problème est, je veux mettre à jour le nom de fichier d'image dans la base de données et je ne suis pas sûr comment obtenir les données au contrôle textbox que le gridview utilise pour mettre à jour la base de données. Le contrôle textbox j'ai mis la visibilité à caché. voici le code 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>
Et est la fonction ici qui stocke le fichier sur le serveur, et place le nom de fichier dans une variable:
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;
}
}
Alors, où puis-je aller d'ici? Je pense que la mise à jour a déjà eu lieu ou quelque chose? Parce que le "txtImage.Text" ne met pas à jour la base de données ... Suis-je en panne ici ou quelque chose? Je peux manipuler des valeurs dans la zone de texte dans cette fonction avant qu'il soit enregistré dans la base de données droite? Merci pour votre aide sur celui-ci.
Pas vraiment de mise à jour dans le code derrière je ne pense pas ... J'utilise la propriété "UpdateQuery" de l'ensemble de données pour gérer la mise à jour. – Kolten
Votre réponse ci-dessous semble bien, lorsque vous n'êtes pas en mesure de lier deux éléments en ajoutant leurs valeurs à la collection de mise à jour en accrochant un événement de source de données est le chemin à parcourir – Jon