2011-12-20 128 views
2

在这种情况下 - 我有图像的名称(如: - abc.jpg的)保存在数据库中&实际图像在于文件系统(〜/ ClientImages /)的文件夹。显示图像从数据库中ASP.NET

现在我想从数据库中检索图像:

ImageUrl = <%# string.Format("~/ClientImages/{0}", Eval("image")) %> 

它重新尺寸600×400 &显示在页面上div

我创建使用网格视图存储过程&但无法完成它。

我也可以不用网格视图,我的意思是如何的DataTable图像

dt.Rows[0]["image"] 

设置为div通过CS?

由于提前

更新

只为菜鸟:P 这是一个非常基本的方法,您也可以填写从CS文件DataGrid中,但我选择了肮脏的做法ie.SqlAdaperSource 采取一个GridView选择 - 数据源(即: - SqlDataAddapter,通过向导)。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
    DataKeyNames="id" DataSourceID="SqlDataSource1"> 
    <Columns>   
    <asp:TemplateField> 
    <ItemTemplate> 
    <asp:Image ID="img12" runat="server" Width="600px" Height="400" ImageUrl='<%# Page.ResolveUrl(string.Format("~/ClientImages/{0}", Eval("image"))) %>' /> 

    </ItemTemplate> 
    </asp:TemplateField> 

    </Columns> 

</asp:GridView> 


## SqlDataSource ## 
<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
    ConnectionString="<%$ ConnectionStrings:XXXXConnectionStringName %>" 
    SelectCommand="Stored_Procedure_Name" SelectCommandType="StoredProcedure"> 
</asp:SqlDataSource> 

回答

2

您可以为<img><asp:image>约束和解决图像:

<div> 
    <img id="img1" runat="server" width='600' height='400' 
     src='<%# Page.ResolveUrl(string.Format("~/ClientImages/{0}", Eval("image"))) %>' /> 
</div> 

<div> 
    <asp:image id="img1" runat="server" Width='600' Height='400' 
     ImageUrl='<%# Page.ResolveUrl(string.Format("~/ClientImages/{0}", Eval("image"))) %>' /> 
</div> 

如果要调整图像在飞行中,你可以在这个问题上使用代码:

create fixed size thumbnail dynamically on listview control

+2

我认为,这里的关键是调用Page.ResolveUrl()。我敢打赌,在他原来的代码中是唯一让他绊倒的东西。他期待标记能够翻译该网址,当他所做的只是在html页面上写一个代字符时,浏览器不知道该如何处理它。 – 2011-12-20 02:49:47

0

调整图像大小可以轻松完成。这里有一个例子:http://snippets.dzone.com/posts/show/4336

至于查看代码看起来没什么问题的图像。显示图像有什么问题。你知道,如果你是通过ASP.NET输出它,你将需要做

<img src='<%# string.Format("/ClientImages/{0}", Eval("image")) %>' alt='' /> 
相关问题