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& ......
一.使用RegisterStartUpScript注册只执行一次的javascript
第1步(创建并注册并使用javascript):Page.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
//创建JavaScript
string info = "<mce:script type="text/javascript"><!--alert('你好,我是XXX!')// --></mce:scrip ......
前阵子开发的一个项目程序中,总是存在超时问题,我在iis和web.config中都配置了超时为120分钟,但是经常是不到40分钟就超时了,很是烦人却苦于一直没有找到比较好的一种方案,后来查询了许多相关的资料才找到一个可以实施的方案。
这里主要讲述一下web.config关于sessionState节点的配置方案,sessionState有四种模式:of ......
public static void GetHtml(string url,string savepath)//url参数为将要生成的那个动态页面的地址,savepath为要存放地址
{
string Result;
WebResponse MyResponse;
WebRequest MyRequest = System.Net.HttpWebRequest.Create(url);
MyResponse = MyReque ......
1、解决了 framework2.0 架构下 子页 内容 引用updatepanel 导致 ajax控件 警告为:未知元素,代码排版紊乱。(framework3.5 无此问题 ) 方法为:在web.config 下 <pages><controls><add tagPrefix="ajax" /> tagprefix 属性 改为ajax ,页面内所有ajax 控件 的标签都由 <asp/>改为<ajax/> ......