图片以文件形式保存,路径存在数据库中,GridView通过后台数据库绑定显示图片。控件中图片会以原大小显示,导致控件超出屏幕。怎样控制图片的大小,使图片按照我想要的宽度显示,而且最好不变形???

解决方案 »

  1.   

    本帖最后由 net_lover 于 2011-04-10 13:54:05 编辑
      

  2.   

    控件的话 。
    Image1.Height
    Image1.Width<img height="" width="" />
    这样也可以 。
    页面加载的时候js做处理也行 。
      

  3.   

    下面的例子包含了2种实现的方法<%@ Page Language="C#" %><%@ Import Namespace="System.Data" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server">  protected void Page_Load(object sender, EventArgs e)
      {
        String[] img = { "http://dotnet.aspx.cc/Images/logoSite.gif", 
                         "http://dotnet.aspx.cc/Images/mvp.gif", 
                         "http://dotnet.aspx.cc/Book/Images/CSS2_s.jpg", 
                         "http://dotnet.aspx.cc/Book/Images/CSS2.jpg" };    DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new DataColumn("id", typeof(Int32)));
        dt.Columns.Add(new DataColumn("Img", typeof(string)));
        for (int i = 0; i < img.Length; i++)
        {
          dr = dt.NewRow();
          dr[0] = i;
          dr[1] = img[i];
          dt.Rows.Add(dr);
        }
        GridView1.DataSource = dt;
        GridView1.DataBind();
      }  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
      {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
          Image img = e.Row.Cells[0].Controls[0] as Image;
          img.Width = 200;
        }
      }
    </script><html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
      <title></title>
    </head>
    <body>
      <form id="form1" runat="server">
      <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false" OnRowDataBound="GridView1_RowDataBound">
        <Columns>
          <asp:ImageField DataImageUrlField="Img" />
          <asp:TemplateField>
            <ItemTemplate>
              <img src="<%#Eval("Img") %>" onload="if(this.width/this.height>200/120){ this.width=200;}else{this.height=120;} " />
            </ItemTemplate>
          </asp:TemplateField>
        </Columns>
      </asp:GridView>
      </form>
    </body>
    </html>