2012-07-27 50 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"/>