用户控件:用户控件是能够放置标记Web服务控件的容器,可以被看做一个独立的单元,拥有自己的属性和方法,并可放入到ASPX页面上。(简单理解:当一个Web窗体被当做Server控件使用时,这个Web窗体便时用户控件。)
创建一个用户控件
如果查看用户的HTML源代码,就会看到它与标准ASP.NET Web页面的几个有区别。
代码如下
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebApplication1.WebUse
Control1" %>
用户控件与页面区别:
后缀名:用户控件.ascx为后缀名,页面后缀名是.aspx
指令:用户控件为@ Control,页面是@Page
继承:用户控件继承System.Web.UI.WebControls;而页面继承自System.Web.UI.WebPage;
访问::用户控件不可直接访问,页面可直接访问。
例如:制作一个搜索框
public partial class WebUserControl1 : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Response.Write(Button1.Text + ":" + TextBox1.Text);
}
public string settext
{
get
{
return Button1.Text;
}
set
{
Button1.Text = value;
}
}
public void Show()
{
Response.Write(Button1.Text);
}
}
使用用户控件:直接可以把用户控件文件.ascx从“解决方案资源管理器”中拖放到需要使用的Web页面上即可。
HttpHandler的使用
在vs2010中新建一个web项目下建立一个一般处理程序
使用Handler方式实现数字水印
代码如下
在Web.config配置文件
public class Handler1 : IHttpHandler
{
//private string IMG = "~/ProductImgs/";
public void ProcessRequest(HttpContext context)
{
Image Cover;
string Path = context.Request.PhysicalPath; //context.Request.MapPath(IMG + context.Request.Params["id"]+".jpg");
if (File.Exists(Path))
{
Cover = Image.FromFile(Path);
Graphics g = Graphics.FromImage(Cover);
g.DrawString("xiecan.cc", new Font("宋体",20), Brushes.Red,Cover.Width-90,Cover.Height-20);
g.Dispose();
}
else
{
Cover = null;
}
context.Response.ContentType = "image/jpeg";
Cover.Save(context.Response.OutputStream, ImageFormat.Jpeg);
Cover.Dispose();
context.Response.End();
}
public bool IsReusable
{
get
{
return false;
}
}
}
在浏览器运行如下;