ASP.NET 中处理页面“回退”的方法
2008-09-24 09:05
489 查看
我们在编写基于ASP.NET的应用程序时,如果代码执行出错或检测到异常,一般会提示用户“返回”或“回退”,或者在多步操作、列表/详细的查看界面中,也会给用户提供回退到上一页面的链接,对于这种情况,大家很快就会想到的简单做法就是利用Javascript来实现,即history.go(-1),但是由于ASP.NET页面的PostBack机制,所以history.go(-1)可能还是当前页面,而不能真正回退到上一页面。
在ClassifiedsSiteStarterKit中,学习到一种不错的关于回退的处理方法,可以分别在客户端和服务器控件中实现页面的回退,代码如下:
1)首先在页面中增加两个属性
在ClassifiedsSiteStarterKit中,学习到一种不错的关于回退的处理方法,可以分别在客户端和服务器控件中实现页面的回退,代码如下:
1)首先在页面中增加两个属性
//记录上一个页面的信息 privatestringUrlReferrer //记录PostBack的次数 publicintNumPostBacks //记录上一页面的信息或更新PostBack的次数 protectedvoidPage_Load(objectsender,EventArgse) //在代码中回退 protectedvoidReturnToPreviousPage() ...{ stringreferrer=UrlReferrer; if(referrer!=null) Response.Redirect(referrer); else Response.Redirect("~/default.aspx",true); } 来自:http://blog.joycode.com/moslem/archive/2006/10/17/85307.aspx
在网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.netsdk相关内容.QQROOM网络家园的图片上传用到了所有的4种生成方式.
/**////<summary>
///生成缩略图
///</summary>
///<paramname="originalImagePath">源图路径(物理路径)</param>
///<paramname="thumbnailPath">缩略图路径(物理路径)</param>
///<paramname="width">缩略图宽度</param>
///<paramname="height">缩略图高度</param>
///<paramname="mode">生成缩略图的方式</param>
publicstaticvoidMakeThumbnail(stringoriginalImagePath,stringthumbnailPath,intwidth,intheight,stringmode)
{
ImageoriginalImage=Image.FromFile(originalImagePath);
inttowidth=width;
inttoheight=height;
intx=0;
inty=0;
intow=originalImage.Width;
intoh=originalImage.Height;
switch(mode)
{
case"HW"://指定高宽缩放(可能变形)
break;
case"W"://指定宽,高按比例
toheight=originalImage.Height*width/originalImage.Width;
break;
case"H"://指定高,宽按比例
towidth=originalImage.Width*height/originalImage.Height;
break;
case"Cut"://指定高宽裁减(不变形)
if((double)originalImage.Width/(double)originalImage.Height>(double)towidth/(double)toheight)
{
oh=originalImage.Height;
ow=originalImage.Height*towidth/toheight;
y=0;
x=(originalImage.Width-ow)/2;
}
else
{
ow=originalImage.Width;
oh=originalImage.Width*height/towidth;
x=0;
y=(originalImage.Height-oh)/2;
}
break;
default:
break;
}
//新建一个bmp图片
Imagebitmap=newSystem.Drawing.Bitmap(towidth,toheight);
//新建一个画板
Graphicsg=System.Drawing.Graphics.FromImage(bitmap);
//设置高质量插值法
g.InterpolationMode=System.Drawing.Drawing2D.InterpolationMode.High;
//设置高质量,低速度呈现平滑程度
g.SmoothingMode=System.Drawing.Drawing2D.SmoothingMode.HighQuality;
//清空画布并以透明背景色填充
g.Clear(Color.Transparent);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage,newRectangle(0,0,towidth,toheight),
newRectangle(x,y,ow,oh),
GraphicsUnit.Pixel);
try
{
//以jpg格式保存缩略图
bitmap.Save(thumbnailPath,System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch(System.Exceptione)
{
throwe;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
}
}
关键方法Graphics.DrawImage见ms-help://MS.NETFrameworkSDKv1.1.CHS/cpref/html/frlrfsystemdrawinggraphicsclassdrawimagetopic11.htm
相关文章推荐
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- 转载--ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- ASP.NET 中处理页面“回退”的方法
- asp.net页面之间传中文是乱码的处理方法
- Asp.net页面常用处理解决方法
- ASP.NET页面传值显示乱码处理方法
- C#编译器优化那点事 c# 如果一个对象的值为null,那么它调用扩展方法时为甚么不报错 webAPI 控制器(Controller)太多怎么办? .NET MVC项目设置包含Areas中的页面为默认启动页 (五)Net Core使用静态文件 学习ASP.NET Core Razor 编程系列八——并发处理