2014-01-06 176 views
0

我需要將Prod_Picture顯示爲圖片,而不是路徑文本。我無法在GridView中設置屬性,因爲我將此代碼綁定到了GridView,並且沒有創建任何列。如何在GridView中將圖片的路徑更改爲圖片?

protected void Page_Load(object sender, EventArgs e) 
    { 
     var item = from c in db.Products 
        join o in db.ProductCategories 
        on c.ProdC_ID equals o.ProdC_ID 
        select new 
        { 
         ProductID = c.Prod_ID, 
         ProductName = c.Prod_Name, 
         Price = c.Prod_Price, 
         Amount = c.Prod_Amount, 
         Picture = c.Prod_Picture, 
         ProductDetail = c.Prod_Detail, 
         ProductCategory = o.ProdC_Name 
        }; 
     GridView1.DataSource = item; 
     GridView1.DataBind(); 
    } 

這裏GridView的源代碼:

<asp:GridView ID="GridView1" runat="server"> 
    </asp:GridView> 

請幫助!

+0

你能告訴你的ASP代碼? – paqogomez

+0

我只是添加源代碼。是對的嗎? –

回答

2

您可以參考下面的話題:

Displaying Images from a Database in a GridView

執行爲GridView以下操作:

enter image description here

  1. 取消選中自動生成場
  2. 使用用戶名和國家的兩個BoundFields
  3. 設置標題文本和數據字段(數據庫中的字段名)
  4. 使用的ImageField的圖像,並設置DataImageUrlField = ImageFieldName
  5. 單擊確定
+0

嗨,我是編碼新手,你給我看的這個是使用sql。我怎樣才能將它應用於linq?我無法在GridView中設置屬性,因爲GridView並未綁定LinqDataSource,而是綁定了上面的代碼。 –

+0

我明白了,但數據綁定是一樣的。嘗試按照GridView的配置。 – Stuart

+0

我添加了特定的信息。 – Stuart

1

我認爲你是存儲圖像的URL作爲Prod_Picture。 在這種情況下

<asp:BoundField DataField="Prod_Name" HeaderText="Prod_Name" /> 

<asp:BoundField DataField="Prod_Price" HeaderText="Prod_Price" /> 

<asp:TemplateField HeaderText="Image"> 

<ItemTemplate> 

<asp:Image ID="Image1" ImageUrl='<%# (string) FormatImageUrl((string) Eval("Prod_Picture")) %>' runat="server" /> 

</ItemTemplate> 

</asp:TemplateField> 

</Columns> 

<FooterStyle BackColor="#FFFFCC" ForeColor="#330099" /> 

<RowStyle BackColor="White" ForeColor="#330099" /> 

<SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="#663399" /> 

<PagerStyle BackColor="#FFFFCC" ForeColor="#330099" HorizontalAlign="Center" /> 

<HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="#FFFFCC" /> 

</asp:GridView> 

這將工作

+0

我會盡力的。謝謝。 :) –