2012-07-27 81 views
0

我需要從數據庫表中顯示多個圖像並將其綁定到中繼器,我該如何去做呢?從SQL Server 2008顯示多個圖像

這是我當前的代碼,但我對如何繼續顯示圖像

下面是我的方法將數據加載到中繼器不知道:

public void loadNoofNewJobsCompany() 
{ 
     DateTime lastlogged = Convert.ToDateTime(Session["LastLoginstaff"]); 

     string sqlStr = "SELECT * FROM Job "; 
     sqlStr += "WHERE "; 
     sqlStr += "UpdatedDateCmpRep <= @loggedin"; 

     SqlCommand cmd = new SqlCommand(sqlStr, cnn); 
     cmd.Parameters.AddWithValue("@loggedin", lastlogged); 

     try 
     { 
      cnn.Open(); 

      SqlDataAdapter da = new SqlDataAdapter(cmd); 

      DataTable dt = new DataTable(); 
      da.Fill(dt); 

      Label2.Text = dt.Rows.Count.ToString(); 

      PagedDataSource pgdsc = new PagedDataSource(); 
      pgdsc.DataSource = dt.DefaultView; 

      repeater1.DataSource = pgdsc; 
      repeater1.DataBind(); 
     } 
     catch (Exception ex) 
     { 
      Response.Write("Error: " + ex.Message); 
     } 
     finally 
     { 
      if (cnn != null) 
      { 
       cnn.Close(); 
      } 
     } 
    } 

這是中繼器:

<asp:Repeater ID="repeater1" runat="server"> 
    <ItemTemplate> 
     <div class="boxgrid caption"> 
      <%--<img src="../../img/google.png" style="text-align:center"/>--%> 
      <div class="cover boxcaption"> 
       <p> 
        <a href='../Job/ViewJobDetail.aspx?ID=<%# DataBinder.Eval(Container.DataItem, "JobID")%>' class="headerlink"> 
        <%# getTitle(Eval("JobName").ToString()) %> 
        </a> 
       </p> 
       <p> 
        Salary Range: 
        <%# DataBinder.Eval(Container.DataItem, "JobSalaryRange")%> 
       </p> 
       ... (more stuff - not relevant here) ..... 
      </div> 
     </div> 
    </ItemTemplate> 
</asp:Repeater> 

回答

1

爲了在gridview中顯示圖像,我們需要創建一個Handler從數據庫讀取二進制數據。

here就是很好的例子。

0

我假設圖像存儲在數據庫中。
.ashx(Http handler)顯示圖像。
您可以直接從數據庫使用.ashx文件中的Response Header呈現圖像,並在中繼器中使用該.ashx文件,圖像將顯示出來。

<img src="displayImage.ashx?id=111" style="text-align:center"/>