【求助】GridView中如何控制图片的大小 图片以文件形式保存,路径存在数据库中,GridView通过后台数据库绑定显示图片。控件中图片会以原大小显示,导致控件超出屏幕。怎样控制图片的大小,使图片按照我想要的宽度显示,而且最好不变形??? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本帖最后由 net_lover 于 2011-04-10 13:54:05 编辑 控件的话 。Image1.HeightImage1.Width<img height="" width="" />这样也可以 。页面加载的时候js做处理也行 。 下面的例子包含了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> System.Web.Cache 奇了!,很不理解,望高手帮助。 求助,VS2008下的webservice错误 不允许用于访问路径“”的 HTTP 谓词 POST 送分小问 急急,这 样 的 图 片 预 载 效 果 的 代 码 100,100,100 关于两个按钮的回车键聚焦 企业内部网怎样通过域账号来验证和授权? asp.net页缓存 为什么表单提交之后刷新页面就会提示下列信息,并把表单再次提交? 如何判断Control型对象属于哪个类型 用c#搭建WEB应用程序时,aspx 与 cs 两者的关系怎样? 打印时跳页 清清月儿的dataGrideView编辑问题
Image1.Height
Image1.Width<img height="" width="" />
这样也可以 。
页面加载的时候js做处理也行 。
<!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>