当前位置:编程学习 > C#/ASP.NET >>

gridview里放了<asp:Image>小的图片可以显示, 大图片显示不了,这是为什么呢?

我想在gridview里的一列绑定图片,并统一显示相同的大小,Width="100px",Height="100px"。
上传了一张小图片可以显示,大的图片就显示不了,请大家帮忙解决,thanks.
不废话了,直接贴代码:
1.aspx
<asp:GridView ID="gv_Data"   runat="server" 
 AutoGenerateColumns="False" BackColor="#CCCCCC" 
 BorderColor="#999999" BorderStyle="Solid" BorderWidth="3px" CellPadding="3" 
 ForeColor="Black"  Font-Size="12pt">
  <Columns>
<asp:BoundField DataField="st_ID" HeaderText="ID"   />
  <asp:BoundField DataField="Pro_Name" HeaderText="产品名称"   />
  <asp:BoundField DataField="Pro_Type" HeaderText="规格型号"  />
  <asp:BoundField DataField="Sap_NO" HeaderText="Sap料号"  />
  <asp:BoundField DataField="Amount" HeaderText="数量"   />
  <asp:BoundField DataField="Unit" HeaderText="单位"  />
  <asp:BoundField DataField="Location" HeaderText="库位"   />
   <asp:BoundField DataField="NoTaxPrice" HeaderText="未税单价"   />
   <asp:BoundField DataField="Remark" HeaderText="备注"   />
   <asp:TemplateField HeaderText="图片">
   <ItemTemplate>
   <asp:Image ID="image" runat="server"  ImageUrl='<%#Eval("Image_url")%>' Width="100px" Height="100px"/>
 </ItemTemplate>
   </asp:TemplateField>
  </Columns>
 </asp:GridView>

2. .cs

        string conn = ConfigurationManager.ConnectionStrings["connectionstring1"].ToString();
        SqlConnection cn = new SqlConnection(conn);
        string sqlStr = "select * from Storage where st_ID is not null ";

        string strWhere = "";
        
        if(ddl_ProName.SelectedIndex !=0)
        {
            strWhere += " and pro_name=N'" + ddl_ProName.SelectedValue+"'";
        }
        if (txtKeyWord.Text.ToString().Trim() != "请输入关键字")
        {
            string keyword  =txtKeyWord.Text.ToString().Trim() ;
            strWhere += "  and (Pro_Name like N'%" + keyword + "%' or Pro_Type like N'%" + keyword + "%' or Sap_NO like N'%" + keyword + "%' or Location like N'%" + keyword + "%'  )";
        }

        sqlStr += strWhere;

        ViewState["sql"] = sqlStr;

        DataTable tmpDataTable = new DataTable();
        SqlDataAdapter myCommand = new SqlDataAdapter(sqlStr, cn);

        if (ddl_ProName.SelectedIndex != 0)
        {
            myCommand.SelectCommand.Parameters.AddWithValue("@pro_name", ddl_ProName.SelectedValue);
        }
        if (txtKeyWord.Text.ToString().Trim() != "请输入关键字")
        {
            myCommand.SelectCommand.Parameters.AddWithValue("@KeyWord", txtKeyWord.Text.Trim());
        }
        DataSet ds = new DataSet();

       
        try
        {
            cn.Open();
            myCommand.Fill(ds, "Storage");
            gv_Data.DataSource = ds.Tables["Storage"];
            gv_Data.DataBind();
            gv_Data.Visible = true;

            btn_excel.Visible = true;
        }

        catch (Exception err)
        {

        }
        finally
        {
            cn.Close();
        }

--------------------编程问答-------------------- 不应该啊
1、确保大图片路径和名称正确,服务器上有这个文件;
2、是不是图片太大,下载需要一个过程
3、图片格式是不是支持 --------------------编程问答-------------------- 我也奇怪啊,小的图片都能显示的,路径肯定木有问题的,难得和图片的像素有关吗? --------------------编程问答-------------------- 还有人在用这么古老的东西,哎~你直接用repeater就可以了,html代码自己写了。 --------------------编程问答--------------------
引用 3 楼 woodyy 的回复:
还有人在用这么古老的东西,哎~你直接用repeater就可以了,html代码自己写了。

因为有好多列数据要显示 --------------------编程问答-------------------- 不应该啊

LZ看看最后渲染出来的html源码中大图片的路径,把路径直接拷贝到浏览器地址栏中是否能够显示其图片 --------------------编程问答-------------------- 楼主有没有报什么错呢,多数情况下路径不对! --------------------编程问答-------------------- <asp:Image ID="image" runat="server"  ImageUrl='<%#Eval("Image_url")%>' Width="100px" Height="100px"/>
改成
<img src="<%#Eval("Image_url")%>" width="100" height="100"/>
不行就看看图片地址对没?
再不行就看看配置文件是否限制输出文件大小 --------------------编程问答-------------------- 应该是图片格式问题,你可以用ps打开以下然后选择另存为web专用格式
试试看 --------------------编程问答-------------------- 看看网站加载完后的图片的路径,用ie调试工具看看没有显示出来的图片的路径!看看是不是你所希望的路径!!如果小图片可以大图片不可以,不是路径,就是格式不正确!!!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,