关于dataList里面图片显示的问题

chunfeng007 2009-04-15 03:27:35
关于dataList里面图片显示的问题
由于用户上传的图片太大且比较不确定,在列表面显示图片的时候如果固定了长宽,图片会出现变形的情况,故加了一个JS的函数来按比例缩小图片,但是用上之后有的图片受了限制,有的还是很大,好像不受JS的限制了。故我来取经
.aspx文件用来显示图片的

<div class="pic">
 <asp:Image ID="imgurl" runat="server" ImageUrl='<%# Eval("imgurl") %>' />
</div>

.cS文件用来控制图片大小的

protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int id = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex]);
Image ib = (Image)e.Item.FindControl("imgurl");
Image bigimg = (Image)e.Item.FindControl("bigimg");
ib.Attributes.Add("onload", "javascript:imgadapter(this,120,90)");
string img = ib.ImageUrl;
if (img != "")
{
ib.ImageUrl = "/business/" + img;
ib.AlternateText = "产品图片(URL)" + img;
}

else
{
ib.ImageUrl = "/img2007/nopic.jpg";
ib.AlternateText = "无产品图片1";
}

bigimg.ImageUrl = ib.ImageUrl;




}

JS函数

function imgadapter(obj,width,height)
{
var max_height = height; //设置最大高度
var max_width = width; //设置最大宽度
var real_height = obj.height;
var real_width = obj.width;
if(obj.height>max_height)
{
obj.height = max_height;
obj.width = Math.round(obj.height*real_width/real_height);
}
if(obj.width>max_width)
{
obj.width = max_width;
obj.height = Math.round(obj.width*real_height/real_width);
}
}

还有什么其它办法可以实现吗?
...全文
83 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
starsword 2009-04-16
  • 打赏
  • 举报
回复
楼主,我把压箱底的千年珍藏都拿出来了,应该可以~

=====================================================================================

#region 图片压缩显示
private void ImgFileShow(string path,Image Img) //path 为存储图片的路径,Img 为显示图片的控件ID
{
//压缩后图片的最大宽和高
int wa = 90;
int hb = 80;
if (File.Exists(Server.MapPath(path)))
{
System.Drawing.Image imga = System.Drawing.Image.FromFile(Server.MapPath(path));
if ((float)imga.Width / imga.Height >= (float)wa / hb)
{
Img.Width = System.Web.UI.WebControls.Unit.Parse(wa.ToString());
}
else
{
Img.Height = System.Web.UI.WebControls.Unit.Parse(hb.ToString());
}
Img.ImageUrl = path;
}
#endregion
chunfeng007 2009-04-16
  • 打赏
  • 举报
回复
再顶
chunfeng007 2009-04-15
  • 打赏
  • 举报
回复
我顶起来

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧