ASP.NET Tutorial/Data Binding/ImageField
Use an ImageField to display an image stored on the server"s hard drive
<source lang="csharp">
You can"t use an ImageField to display images stored in a database table. <%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <script runat="server">
protected void frmPhoto_ItemInserting(object sender, FormViewInsertEventArgs e) { FileUpload upPhoto = (FileUpload)frmPhoto.FindControl("upPhoto"); srcImages.InsertParameters["FileName"].DefaultValue = upPhoto.FileName; string savePath = MapPath("~/Photos/" + upPhoto.FileName); upPhoto.SaveAs(savePath); }
</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">
<title>Show ImageField</title>
</head> <body>
<form id="form1" runat="server">
<asp:GridView id="grdImages" DataSourceID="srcImages" AutoGenerateColumns="false" ShowHeader="false" Runat="server"> <Columns> <asp:ImageField DataImageUrlField="FileName" DataImageUrlFormatString="~/Photos/{0}" DataAlternateTextField="AltText" ControlStyle-Width="200px" /> </Columns> </asp:GridView> <asp:SqlDataSource id="srcImages" ConnectionString="<%$ ConnectionStrings:Photos %>" SelectCommand="SELECT FileName, AltText FROM Photos" InsertCommand="INSERT Photos (FileName, AltText) VALUES (@FileName, @AltText)" Runat="server"> <InsertParameters> <asp:Parameter Name="FileName" /> </InsertParameters> </asp:SqlDataSource>
<asp:FormView id="frmPhoto" DefaultMode="Insert" DataSourceID="srcImages" OnItemInserting="frmPhoto_ItemInserting" Runat="server"> <InsertItemTemplate>
Add Photo
<asp:Label id="lblPhoto" Text="Photo:" AssociatedControlID="upPhoto" Runat="server" />
<asp:FileUpload id="upPhoto" Runat="server" />
<asp:Label id="lblAltText" Text="Alternate Text:" AssociatedControlID="txtAltText" Runat="server" />
<asp:TextBox id="txtAltText" Text="<%# Bind("AltText") %>" Columns="50" Runat="server" />
<asp:Button id="btnInsert" Text="Add New Photo" CommandName="Insert" Runat="server" /> </InsertItemTemplate> </asp:FormView>
</form>
</body> </html>
File: Web.config <configuration>
<connectionStrings> <add name="Products" connectionString="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|MyDatabase.mdf;Integrated Security=True;User Instance=True" /> </connectionStrings>
</configuration></source>