服务器控件与组建开发(2).简单得要死的控件
2-1:自定义控件
说明:继承自System.Web.UI.Control,主要是重载Render方法。把控件的html语句写出来。
文件名:SelfControl.cs
代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

namespace SelfControls
{
/// <summary>
/// SelfControl HelloWorld
/// </summary>
public class SelfControl : Control
{
private string _Name;

/// <summary>
/// 自定义的一个属性
/// </summary>
public string Name
{
set { _Name = value; }
get { return _Name; }
}

/// <summary>
/// 一句一句把html代码写出来.
/// 当然写的方式有多种.下机是最简单的一种.
/// 也可以用HtmlTextWriterAttribute;HtmlTextWriterStyle;HtmlTextWriterTag;
/// 定义的一些枚举值.
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
writer.Write("<table border=1>");
writer.Write("<tr>");
writer.Write("<td>");
writer.Write("this is a self control of " + _Name);
writer.Write("</td>");
writer.Write("<td>");
writer.Write("HelloWorld!");
writer.Write("</td>");
writer.Write("</tr>");
writer.Write("</table>");
}
}
}
这些代码产生的画面如下:比较难看,赫赫。

2-2:自定义用户控件
说明:用户控件继承的类不同于以上所说的自定义控件,它继承自System.Web.UI.UserControl,而
UserControl:TemplateControl:Control,说明用户控件有了进一步的封装。
文件名:WebUserControl.ascx,WebUserControl.ascx.cs
前台代码:
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="WebUserControl.ascx.cs"
Inherits="WebUserControl" %>
<table border="1">
<tr>
<td><asp:TextBox ID="TextBox1" runat="server"></asp:TextBox></td>
<td><asp:Button ID="Button1" runat="server" Text="Button" /></td>
</tr>
</table>
后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;

/// <summary>
/// 什么也没写
/// </summary>
public partial class WebUserControl : System.Web.UI.UserControl
{
}
效果:

2-3:做一个页面来调用上面两个控件。
说明:相当于一个容器,把上面两个控件装载进来。
文件名:Default.aspx
代码如下:
<%@ Page Language="C#" AutoEventWireup="true"
CodeFile="Default.aspx.cs" Inherits="_Default" %>

<%@ Register Namespace ="SelfControls" TagPrefix="cc1" %>
<%@ Register Src="~/WebUserControl.ascx" TagName = "WebUser" TagPrefix = "cc2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>HelloWorld</title>
</head>
<body>
<form id="form1" runat="server">
<cc1:SelfControl ID="SelfControl1" runat="server" Name="">
</cc1:SelfControl>
<br />
<cc2:WebUser ID = "WebUser1" runat ="server" />
</form>
</body>
</html>
2-4:over。算是一个helloworld。继续学习。
2-1:自定义控件
说明:继承自System.Web.UI.Control,主要是重载Render方法。把控件的html语句写出来。
文件名:SelfControl.cs
代码如下:




















































2-2:自定义用户控件
说明:用户控件继承的类不同于以上所说的自定义控件,它继承自System.Web.UI.UserControl,而
UserControl:TemplateControl:Control,说明用户控件有了进一步的封装。
文件名:WebUserControl.ascx,WebUserControl.ascx.cs
前台代码:

Inherits="WebUserControl" %>
























2-3:做一个页面来调用上面两个控件。
说明:相当于一个容器,把上面两个控件装载进来。
文件名:Default.aspx
代码如下:

CodeFile="Default.aspx.cs" Inherits="_Default" %>





"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">














2-4:over。算是一个helloworld。继续学习。