在做相片管理时 遇到了相片显示的问题 从数据库里读出多张相片后 怎样显示在同一个页面 后用多个页面显示 

解决方案 »

  1.   

     <asp:Repeater ID="rp_sqgjj" runat="server">
                    <ItemTemplate>
                    <td>
                    <a href="Mps.aspx?id=<%#Eval("id").ToString()%>"><img src="<%#Eval("ProductPic").ToString()%>" alt="<%#Eval("tile").ToString()%>" style="border:1px thin #FFFF66; width:161px; height:118px; margin-right:3px;"  />
                    </a></td>
                    </ItemTemplate>
            </asp:Repeater>
      

  2.   

    读取数据 用datalist repeater 都可以来呈现 读出的路径绑定到img的src就行后用多个页面显示  
    ----
    lz是指点击 图片显示大图吗 
      

  3.   

    单独的显示一个图片的代码可以参考下面的:
    void SubmitBtn_Click(object sender, System.EventArgs e)
    {
    int ImgID = Convert.ToInt32(ImgIDTextBox.Text); string ConnStr = System.Configuration.ConfigurationSettings.AppSettings["ConnectionSqlServer"];
    string query = "SELECT * FROM ImageTable WHERE ImageID = @ImageID"; SqlCommand myCommand = new SqlCommand(query, new SqlConnection(ConnStr));
    myCommand.Parameters.Add("@ImageID", SqlDbType.Int);
    myCommand.Parameters["@ImageID"].Value = ImgID;
    myCommand.Connection.Open(); SqlDataReader dr = myCommand.ExecuteReader(); if(dr.Read())
    {
    Response.ContentType = (string)dr["ImageContentType"];
    Response.OutputStream.Write((byte[])dr["ImageData"], 0, (int)dr["ImageSize"]);
    }
    else
    {
    Response.Write("没有这个图片的ID号");
    Response.End();
    } dr.Close();
    myCommand.Connection.Close();
    }
      

  4.   

    如果你的照片存在数据库中,则首先要做一个页面(假如为 showImg.aspx),用于输出图片,用 Response.Write() 方法写图片流,并要将Response.ContentType 设为 image/xxx,xxx跟图片的具体格式有关。然后在需要显示的列表的页面链接到showImg.aspx?id=XXX就可以了。
      

  5.   

    Repeater多行多列不好解决,建议用DataList,在模板中增加另外一个引用单页的连接。
    比如: pic.aspx?id=<%#Eval("id").ToString()%>"> 在pic.aspx页面用details或Repeater调用就简单了。
      

  6.   

    用datalist + 模板 + image 方法 如何显示图片
      

  7.   

    http://blog.csdn.net/xianfajushi/archive/2008/10/19/3100082.aspx
      

  8.   

    能有那个学长学姐 学妹 说点具体的方法 或 给我类似的代码  回家 后有段时间没上网 刚看下 好想实现不了我的功能  不知是不是我没说清楚 意思 还是   
    意思是这样的  下面用代码表示出意思这是前台代码 
    <asp:DataList ID="DataList9" runat="server" Width="99%" RepeatColumns="5" RepeatDirection="Horizontal"> 
    <ItemTemplate> 
    <ItemTemplate> 
    <table cellspacing="1"> 
    <tr> 
    <td> 
    <a href='KingXcImage.apsx?id= <%# DataBinder.Eval(Container.DataItem, "id")%>'target="_blank"> 
    </a> <img width=300 height=300 border=0 src=' <%# DataBinder.Eval(Container.DataItem, "文件路径") %>' 
    <asp:LinkButton ID="LinkButton5" runat="server" Width="99%"> 
    <%# DataBinder.Eval(Container.DataItem, "相片名")%> 
    </asp:LinkButton> 
    </td> 
    </tr> 
    </table> 
    </ItemTemplate> 
    后台代码//读出相册里的图片  相册表结构 id 相册名 路径  人员id 显示否 
    这段代码并未做分页 只是先想实现 显示效果 而写 的 string sqlstr = " select * from 相册 where 显示否=1 and 人员id="+Session["ryid"].ToString(); 
    DataSet ds = KingOper.DataBaseOper.GetDataSet(sqlstr); 
    this.DataList9.DataSource=ds.Tables[0]; 
    this.DataList9.DataBind(); 
    DataTable dt=ds.Tables[0]; 
    KingXcImge页面的代码  读相片的 
    string filename=Request["id"].ToString(); 
    string sqlstr = " select 相片 from 相册 where 显示否=1 and id="+Request["id"].ToString(); 
    DataSet ds=KingOper.DataBaseOper.GetDataSet(sqlstr); 
    byte[] buff=new byte[ds.Tables[0].Rows[0].ToString().Length]; 
    DataRow dr=ds.Tables[0].Rows[0]; 
                            Response.BinaryWrite((byte[])dr["相片"]); 通过这种方法 我没有实现 帮我想个方法