Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用asp.net中的超链接从数据库下载图像_Asp.net_Hyperlink - Fatal编程技术网

使用asp.net中的超链接从数据库下载图像

使用asp.net中的超链接从数据库下载图像,asp.net,hyperlink,Asp.net,Hyperlink,我有一个网站,在管理员登录中我想查看所有订单详细信息。我的网站是这样的: 我从数据库中获取数据,并使用“Datagrid”查看数据,因此这是关于数据检索的部分编码 <ItemStyle Width="100%" VerticalAlign="Top"></ItemStyle> <ItemTemplate> <asp:DataGrid id=Datagrid2 runat="server" Dat

我有一个网站,在管理员登录中我想查看所有订单详细信息。

我的网站是这样的:

我从数据库中获取数据,并使用“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>

因此,这不是完整的代码,而是数据检索的某些部分。实际上,它是关于表的前三列

这就是我的问题

在图片中,我在上面附上了一个名为“Bilde”的专栏。这是个人资料图片。我想要的是,当管理员点击这个图标时,我想下载保存在数据库中的个人资料图片


我不知道在“NavigateUrl”属性上放什么。但我想当我点击图标时,应该下载数据库中保存的相关图像。所以请有人帮我解决这个问题。

您可以使用ImageButton而不是Hyperlink

<asp:ImageButton runat="server" ID="imgbtn" ImageUrl="~/admin/skishop/photo.gif" 
                        onclick="imgbtn_Click" CommandArgument='<%# Eval("ID") %>' />

实际上,我粘贴在这里的代码不是我自己开发的。我只是对这个代码做了一些修改。在这个代码中,开发人员使用“”从数据库中获取文本。这里没有传递ID。所以在我的例子中,你所说的“ID”是什么意思?Punuth,标识唯一列并将它从数据库表绑定到imageButton,所以你可以点击ImageButton获取相关图片。我认为在你的案例中,标题栏不能被视为ID。请同时查找其他栏。
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();
                }
        }