使用 asp.net 中的超链接从数据库下载图像
Download image from the database using hyperlink in asp.net
我有一个网站,在管理员登录中我想查看所有订单详细信息。
我的网站是这样的:
我正在从数据库中获取数据并使用“Datagrid”查看它
所以这是关于数据检索的编码的一部分。
<ItemStyle Width="100%" VerticalAlign="Top"></ItemStyle>
<ItemTemplate>
<asp:DataGrid id=Datagrid2 runat="server" DataSource='<%# getTicketsDataSource( (string)DataBinder.Eval(Container.DataItem, "CartID").ToString() ) %>' BorderColor="Black" BorderWidth="1" GridLines="Horizontal" Font-Name="Verdana" Font-Size="x-small" Width="100%" AutogenerateColumns="False">
<HeaderStyle BackColor="Black" ForeColor="White" Font-Bold="True" />
<ItemStyle BackColor="White" />
<AlternatingItemStyle BackColor="Silver" />
<Columns>
<asp:TemplateColumn HeaderText="Heiskort">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Title") + " " + DataBinder.Eval(Container, "DataItem.ProductVariant") %>' ID="Label1">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Navn">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.FirstName") + " " + DataBinder.Eval(Container, "DataItem.LastName") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Bilde">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" ImageUrl="~/admin/skishop/photo.gif" NavigateUrl="">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
所以这不是完整的代码,而是数据检索的一些部分。实际上,它是关于 table.
的前三列
所以这是我的问题。
在图片中,我在上面附上了一个名为“Bilde”的栏目。那是个人资料图片。我想要的是,当管理员点击这个图标时,我想下载保存在数据库中的个人资料图片。
我不知道在“NavigateUrl”属性上放什么。但是我想当我点击图标时,应该下载保存在数据库中的相关图像。所以请有人帮我解决这个问题。
您可以使用 ImageButton 代替超链接
<asp:ImageButton runat="server" ID="imgbtn" ImageUrl="~/admin/skishop/photo.gif"
onclick="imgbtn_Click" CommandArgument='<%# Eval("ID") %>' />
Cs代码:
protected void imgbtn_Click(object sender, ImageClickEventArgs e)
{
ImageButton btn = sender as ImageButton;
int profileid = Convert.ToInt32(btn.CommandArgument);
loadImage(profileid);
}
public void loadImage(int profileid)
{
DataTable dt = GetData(profileid);// return data from database in this function
if (dt != null)
{
Byte[] bytes = (Byte[])dt.Rows[0]["Imagedata"];
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = dt.Rows[0]["ContentType"].ToString();
Response.AddHeader("content-disposition", "attachment;filename="
+ dt.Rows[0]["Name"].ToString());
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
}
我有一个网站,在管理员登录中我想查看所有订单详细信息。
我的网站是这样的:
我正在从数据库中获取数据并使用“Datagrid”查看它
所以这是关于数据检索的编码的一部分。
<ItemStyle Width="100%" VerticalAlign="Top"></ItemStyle>
<ItemTemplate>
<asp:DataGrid id=Datagrid2 runat="server" DataSource='<%# getTicketsDataSource( (string)DataBinder.Eval(Container.DataItem, "CartID").ToString() ) %>' BorderColor="Black" BorderWidth="1" GridLines="Horizontal" Font-Name="Verdana" Font-Size="x-small" Width="100%" AutogenerateColumns="False">
<HeaderStyle BackColor="Black" ForeColor="White" Font-Bold="True" />
<ItemStyle BackColor="White" />
<AlternatingItemStyle BackColor="Silver" />
<Columns>
<asp:TemplateColumn HeaderText="Heiskort">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.Title") + " " + DataBinder.Eval(Container, "DataItem.ProductVariant") %>' ID="Label1">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Navn">
<ItemTemplate>
<asp:Label runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.FirstName") + " " + DataBinder.Eval(Container, "DataItem.LastName") %>' ID="Label2">
</asp:Label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText="Bilde">
<ItemTemplate>
<asp:HyperLink ID="HyperLink1" runat="server" ImageUrl="~/admin/skishop/photo.gif" NavigateUrl="">
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
所以这不是完整的代码,而是数据检索的一些部分。实际上,它是关于 table.
的前三列所以这是我的问题。
在图片中,我在上面附上了一个名为“Bilde”的栏目。那是个人资料图片。我想要的是,当管理员点击这个图标时,我想下载保存在数据库中的个人资料图片。
我不知道在“NavigateUrl”属性上放什么。但是我想当我点击图标时,应该下载保存在数据库中的相关图像。所以请有人帮我解决这个问题。
您可以使用 ImageButton 代替超链接
<asp:ImageButton runat="server" ID="imgbtn" ImageUrl="~/admin/skishop/photo.gif"
onclick="imgbtn_Click" CommandArgument='<%# Eval("ID") %>' />
Cs代码:
protected void imgbtn_Click(object sender, ImageClickEventArgs e)
{
ImageButton btn = sender as ImageButton;
int profileid = Convert.ToInt32(btn.CommandArgument);
loadImage(profileid);
}
public void loadImage(int profileid)
{
DataTable dt = GetData(profileid);// return data from database in this function
if (dt != null)
{
Byte[] bytes = (Byte[])dt.Rows[0]["Imagedata"];
Response.Buffer = true;
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = dt.Rows[0]["ContentType"].ToString();
Response.AddHeader("content-disposition", "attachment;filename="
+ dt.Rows[0]["Name"].ToString());
Response.BinaryWrite(bytes);
Response.Flush();
Response.End();
}
}