asp.net控件开发(一) 显示控件内容
asp.net教程:asp.net控件开发(一)-显示控件内容
asp.net控件的显示自然会离不开输出HTML、CSS、Javascript等前台的显示内容,所以开发一个控件的时候第一件事就是要知道如何输出客户端要显示的内容。
一、选择基类
asp.net中所有的标准控件都可以拿过来作为基类,如果我们要开发的控件只是对原有的标准控件做一些功能上的加强的话(如:你对TreeView的CheckBox添加一些随动的功能),就可以直接拿标准控件过来作为基类。
一般的如果开发的控件从标准里面找不到合适的,可以从三个类中来继承:
System.Web.UI.Control
System.Web.UI.WebControls.WebControl
System.Web.UI.WebControls.CompositeControl
下面介绍下这三个类的关系跟区别:
Control:只提供简单的呈现,没有对css的支持。如:Literal控件
WebControl:建立了对控件外观的支持。适合可视化的控件来继承 ,如:Button
CompositeControl:是派生多个控件复合的。适合开发应用asp.net中的标准控件。
三者的关系:Control是asp.net所有控件的基类 ,WebControl是从Control中继承而来,CompositeControl是从WebControl中继承而来。
二、如何呈现
Control的呈现
Control类中的呈现是通过方法Render来实现的。Render的原型:
protected internal virtual void Render(HtmlTextWriter writer){...}
HtmlTextWriter writer 参数是在运行时有调用Render方法的框架所提供,所以我们可以同过重写Render方法来实现内容的呈现。
HelloWorld示例:
public class HelloWorld : Control{
protected override void Render(HtmlTextWriter writer)
{
writer.WriteLine("Henllo World");
}
}
编译之后,在新的项目中添加对dll文件的使用,会呈现出"Hello World"。
Control输出html内容
在Render方法中我们要实现输出html标签跟样式可以借助于:HtmlTextWriterTag、HtmlTextWriterAttribute、HtmlTextWriterStyle这三个枚举来实现。HtmlTextWriterTag是表示Html标签,HtmlTextWriterAttribute是表示标签上的属性,HtmlTextWriterStyle是表示样式。
Picture示例:
public class PicShow : Control
{
protected override void Render(HtmlTextWriter writer)
{
writer.AddStyleAttribute(HtmlTextWriterStyle.TextAlign, "center");
writer.AddStyleAttribute
相关文档:
在Global.asax中导入命名空间
<%@Global ...
<%@Import Namespace= "System.Data " %>
<%@Import& ......
public static void GetHtml(string url,string savepath)//url参数为将要生成的那个动态页面的地址,savepath为要存放地址
{
string Result;
WebResponse MyResponse;
WebRequest MyRequest = System.Net.HttpWebRequest.Create(url);
MyResponse = MyReque ......
ASP.NET页面间的传值的几种方法(转载)
ASP.NET WEB FORMS 给开发者提供了极好的事件驱动开发模式。然而这种简单的应用程序开发模式却给我们带来了一些小问题,举个例子,在传统的ASP应用程序中,你能够通过POST方法很容易的把一个值或多个值从一个页面传送到另一个页面,用同样的方法在ASP.NET中实现有点麻烦 ......
1.符号“/”指程序运行所在根目录,即IIs所在目录。
如果iis所在目录为:d:\programs
解决方案为d:\programs\d
网站路径为:d:\programs\d\web\
符号“/”代表的是:d:\programs,不管你的网站前面有多少级,都应该作为一个整体。
2.符号“~/”,则是指网站所在根目录。即d:\programs\ ......