`

Asp.net控件开发学习笔记(二)-控件开发基础

阅读更多

接上篇……..

 

System.Web.UI.HtmlControls命名空间,我们可以发现,很多HTML对应的标签都可以通过添加runat=”server”属性转化为服务器控件,比如<table>会转化为HtmlTable对象,但像<input >标签可以通过type属性对应不同的服务器对象。当html内的标签没有和上图中的服务器控件匹配时,所有不匹配的html标签都会通过添加runat=”server”转化为HtmlGenericControl服务器控件。下面是对应的服务器控件类与HTML标签之间的对应关系:

 

HTML Tag

HTML Server Control

<form>

HtmlForm

<input type="text">

HtmlInputText

<input type="password">

HtmlInputText

<input type="radio">

HtmlInputRadioButton

<input type="checkbox">

HtmlInputCheckBox

<input type="submit">

HtmlInputButton

<input type="hidden">

HtmlInputHidden

<input type="button">

HtmlInputButton

<input type="image">

HtmlInputImage

<input type="file">

HtmlInputFile

<button>

HtmlButton

<select>

HtmlSelect

<textarea>

HtmlTextArea

<img>

HtmlImage

<a>

HtmlAnchor

<table>

HtmlTable

<tr>

HtmlTableRow

<td>

HtmlTableCell

其他标签

HtmlGenericControl

 

Demo:动态构建html表格

 

通过在前台设置表格的行(x)和列(y),动态的利用System.Web.UI.HtmlControls命名空间下的控件动态的进行设置表格的大小:

前台代码如下:

 <h3>HTML Controls</h3>

X

<input type="text" id="XTextBox" runat="server" /><br />

<br />

Y

<input type="text" id="YTextBox" runat="server" /><br />

<br />

<input type="submit" id="BuildTableButton" runat="server"

value="Build Table" onserverclick="BuildTableButton_ServerClick" /><br />

<br />

<span id="Span1" runat="server"></span>

</div>

 

后台代码如下:

 

protected void BuildTableButton_ServerClick(object sender, EventArgs e)

    {

        int xDim = Convert.ToInt32(XTextBox.Value);

        int yDim = Convert.ToInt32(YTextBox.Value);

        BuildTable(xDim, yDim);

    }

 

    private void BuildTable(int xDim, int yDim)

    {

        HtmlTable table;

        HtmlTableRow row;

        HtmlTableCell cell;

        HtmlGenericControl content;

        table = new HtmlTable();

        table.Border = 1;

        for (int y = 0; y < yDim; y++)

        {

            row = new HtmlTableRow();

            for (int x = 0; x < xDim; x++)

            {

                cell = new HtmlTableCell();

                cell.Style.Add("font-size", "18pt");

                cell.Style.Add("background-color", "blue");

                cell.Style.Add("color", "red");

                content = new HtmlGenericControl("SPAN");

                content.InnerHtml = "X:" + x.ToString() +

                "Y:" + y.ToString();

                cell.Controls.Add(content);

                row.Cells.Add(cell);

            }

            table.Rows.Add(row);

        }

        Span1.Controls.Add(table);

    }

 

 

这段代码通过构建HtmlTable对象,然后在其内部通过循环的方式加入trtd.最后将结果放入<span>标签中显示。结果如下图:

    

 

注意下面几行代码:

                 cell = new HtmlTableCell();

                cell.Style.Add("font-size", "18pt");

                cell.Style.Add("background-color", "blue");

                cell.Style.Add("color", "red");

 

可以通过htmlstyle属性的add方法添加CSS的键-值对应(有点HashTable的感觉),在render(输出)到客户端的过程中会自动应用其CSS样式(注意,因为全部是string作为键和值的参数,所以要小心你的拼写J)

 

 

System.Web.UI.WebControls命名空间

在这个命名空间下封装了标准的Web控件.命名空间图示如下:

 

 

图所示,在System.Web.UI.WebControls命名空间下的控件被分成4种类型

1. 简单控件

2. 列表控件(List)

3. 富应用控件(Rich)

4. 验证控件

 

1. 简单控件

简单控件有点像封装在System.Web.UI.HtmlControls命名空间里的控件,每一个控件对应一个HTML标签,TextBox除外.控件和Html标签的对应关系如下:

 

HTML Tag

Simple Web Control

<input type="text">

TextBox with TextMode=Single

<input type="password">

TextBox with TextMode=Password

<textarea>

TextBox with TextMode=MultiLine

<input type="checkbox">

CheckBox

<input type="radio">

RadioButton

<input type="submit">

Button

<input type="image">

ImageButton

<button>

Button

<select>

DropDownList

<select size=3>

SelectList with Rows=3

 

<img>

Image

<a>

HyperLink, LinkButton

<table>

Table

<tr>

TableRow

<td>

TableCell

<div>

Panel

<span>

Label

 

2列表控件

  列表控件在简单控件的基础上,增加了数据源。从CheckBoxList控件到RadioButtonList控件,在到强大的GridView控件,提供了重复生成不同HTML代码的能力.

 

3富应用控件

富应用控件是那些将需要大量HTML拼接起来的东西转化为简单的一个控件,最有代表性的就是Calender控件,可以通过简单的应用就可以创造出非常复杂的效果.

 

4验证控件

验证控件通过提供客户端以javascript为基础的验证方式来减少与服务器的交互,从而达到减少网络流量..

 

 

 

System.Web.UI.WebControls?System.Web.UI.HtmlControls?

    这两个命名空间内有很多控件貌似是重叠的.尤其是HTML控件和asp.net的简单控件都是以控件名称和html标签进行匹配.但Asp.net控件更加丰富,所以在不是非必要的情况下,最好使用WebControl命名空间内的控件并作为基类。

  • 大小: 149.7 KB
  • 大小: 211.2 KB
分享到:
评论

相关推荐

    Asp.net基础控件笔记

    关于asp.net 基础控件的学习笔记。

    asp.net控件笔记

    这些控件笔记对初学者学习ASP.NET很有帮助,可以帮助初学者对ASP.NET有个初步的了解和认识。

    asp.net自定义控件代码学习笔记

    最近看了下Clingingboy写的《asp.net控件开发基础》,做些笔记。

    asp.net c#基本控件属性课堂笔记整理

    C# 各控件的属性,我整理的很详细,下载下来一定要多练,多敲代码,多思考、多整理这样才能把控件用灵活

    ASP.NET学习笔记

    【原创】ASP.NET 安全认证(二) 【原创】ASP.NET 安全认证(三) 【原创】ASP.NET 安全认证(四) 三.iframe高度自适应 网上查到: (1) [原创]iframe高度自适应(多种情况、FF\IE系统全兼容)

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

    asp.net导出数据到Excel的几种方法 学习心得

    asp.net导出到Excel也是个老生常谈的问题,在此归纳一下。 第一种是比较常用的方法。是利用控件的RenderControl功能,得到该控件生成的HTML,然后以Excel文件的类型输出到客户端。这种方法生成的其实是个HTML文件,...

    中美 IT 培训 C# Asp.net 全套笔记1

    价值一万八的中美 IT 培训笔记一万多培训费的资料,北京权威的.NET培训机构】 【认真学习后你一定能成为优秀的.net程序员】 学习对象:1.大专及大专以上理工科学历,或有相当学历的理工科教育背景  2.热爱...

    中美 IT 培训 C# Asp.net 笔记3

    (160课时) 系统讲授 ASP.Net2.0、ADO.Net2.0、 基于数据库的WEB应用程序、的开发;详细地讲授Web Service及其应用和相关的安全性问题、WSE(Web Services Enhancements)、SOAP、WSDL、UDDI、Windows Service、VSS...

    .net技术资料大全(语言规范 源码教程 学习笔记 技术资料 .net代码生成器)

    ASP.NET编程技术与交互式网页设计 asp.net亲密接触_带源码 C#学习 01_类.htm.txt 02_构造函数的执行序列.htm.txt 03_抽象类和接口.htm.txt 04_结构类型.htm.txt 05_类成员的定义.htm.txt 06_类成员的其他...

    中美 IT 培训 C# Asp.net 笔记2

    (160课时) 系统讲授 ASP.Net2.0、ADO.Net2.0、 基于数据库的WEB应用程序、的开发;详细地讲授Web Service及其应用和相关的安全性问题、WSE(Web Services Enhancements)、SOAP、WSDL、UDDI、Windows Service、VSS...

    Visual C#学习笔记光盘

    第五篇介绍了Web编程,主要包括ASP.NET开发,ASP.NET中的控件,ASP.NET中的数据绑定和ASP.NET中的对象;第六篇精选了几个能囊括本书介绍的所有理论的实例,能使读者彻底精通C#编程技术。 本书内容全面,不但适合于...

    ASP升级.net资料大全(c#入门 语言规范 源码教程 学习笔记 技术资料 面试题 asp与.net代码生成器)

    ASP.NET编程技术与交互式网页设计 asp.net亲密接触_带源码 C#学习 01_类.htm.txt 02_构造函数的执行序列.htm.txt 03_抽象类和接口.htm.txt 04_结构类型.htm.txt 05_类成员的定义.htm.txt 06_类成员的其他...

    ASP.NET MVC学习笔记

    更像一种架构模式,或者一种思想,刚开始一听MVC想到的就是模板引擎,NVelocity,StringTempleate等,但感觉如果只是为了用模板这种独立的前台设计方式,没必要用ASP.NET MVC,大多数情况用Repeaterk控件和自定义...

    那些年,我还在学习asp.net(二) 学习笔记

    那些年,我还在学习asp.net(二) 那些年觉得看视频是很轻松的了解一个东西,但是这样的不足就是感觉太慢了,没有看书来得快,所以在有了一些了解后,还得看点书,也许书上的不一定好,但书上会把每一个应该说到的...

    那些年,我还在学asp.net(一) 学习笔记

    C#知识,由于当时上过C++,所以就没有看这些,直接从asp.net开始,主要是学习一下asp.net用到的一些基本控件,后来感觉差不多了就不再看了,开始学习asp.net的数据教程(scott教程),那些年慢慢的走向web开发了。...

    net学习笔记及其他代码应用

    11.用.net做B/S结构的系统,您是用几层结构来开发,每一层之间的关系以及为什么要这样分层? 答:一般为3层 数据访问层,业务层,表示层。 数据访问层对数据库进行增删查改。 业务层一般分为二层,业务表观层...

    ASP.NETGridView数据源控件详解

    详细讲解GridView的用法,是我学习GridView是笔记,知识点详细,可能没有代码,但是方法给出,个人感觉比72绝技好!!!

Global site tag (gtag.js) - Google Analytics