中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

asp.net控件開(kāi)發(fā)基礎(chǔ)(1)

  ASPNET本身提供了很多控件,提供給我們這些比較懶惰的人使用,我認(rèn)為控件的作用就在此,因?yàn)槲覀儾幌胫貜?fù)工作,所以要?jiǎng)?chuàng)建它,這個(gè)本身便是一個(gè)需求的關(guān)系,所以學(xué)習(xí)控件開(kāi)發(fā)很有意思。 wrox網(wǎng)站上有本書(shū) Professional ASPNET 2.0 Server Control and Component Development,現(xiàn)在還沒(méi)有出版,但網(wǎng)站上放出了代碼,所以正好下載過(guò)來(lái)學(xué)習(xí)一下。

  我看過(guò)前幾章代碼,環(huán)環(huán)相扣,作者用不同的知識(shí)向我們展示同一個(gè)效果,所以循序漸進(jìn)的學(xué)下來(lái)很有好處。雖然自己對(duì)控件開(kāi)發(fā)還不是很熟悉,但我感覺(jué)以下幾點(diǎn)很重要,是我自己總結(jié)的

1. 了解控件之間的繼承關(guān)系

  最好是先看看看System。Web。UI命名空間

  (1)Control 類(lèi),所有的控件都共享的一個(gè)類(lèi),你需要去看下其里面受保護(hù)的幾個(gè)方法和屬性,雖然一下看不完,以后會(huì)發(fā)現(xiàn)常常用到這些方法,大家可以在MSDN看一下其派生類(lèi)

  (2)HtmlTextWriter 類(lèi),不得不了解的一個(gè)類(lèi),主要工作就是我們寫(xiě)的標(biāo)記字符和文本輸出

2. 重寫(xiě)方法

  (1) 必須繼承Control類(lèi)

  (2) 重寫(xiě)Control類(lèi)的Render方法,這個(gè)是必須的,因?yàn)槠渌丶祭^承了Control 類(lèi)類(lèi),所以幾乎所有控件都有這個(gè)方法

3. 熟悉元數(shù)據(jù)

  大家都知道ASPNET控件屬性在編輯器上是分類(lèi)的,如外觀,行為,布局等,每個(gè)屬性還給出了解釋。簡(jiǎn)單的元數(shù)據(jù)就是起到這個(gè)作用,當(dāng)然你也可以不加,但使用了元數(shù)據(jù)讓人感到有親切感,寫(xiě)法如

  [CategoryAttribute("Appearance")]

  要使用元數(shù)據(jù),必須引用System。ComponentModel命名控件,一般你如果寫(xiě)組件的話,不可能不用到這樣類(lèi)庫(kù)。具體的MSDN上有所介紹。

一. 輸出字符串

  說(shuō)多了沒(méi)意思,還是來(lái)演練吧。首先你得了解HTML。來(lái)看下面代碼,效果就是輸出HTML到客戶(hù)端

  示例一

using System;
using System.Web.UI;

namespace CustomComponents
{
/// <summary>
/// Summary description for CreditCardForm
/// </summary>
public class CreditCardForm1 : Control
{
protected override void Render(HtmlTextWriter writer)
{
writer.Write(
"<table style='width:287px;height:124px;border-width:0;'>");
writer.Write(
"<tr>");
writer.Write(
"<td><strong>Payment Method</strong></td>");
writer.Write(
"<td>");
writer.Write(
"<select name='PaymentMethod' id='PaymentMethod' style='width:100%;'>");
writer.Write(
"<option value='0'>Visa</option>");
writer.Write(
"<option value='1'>MasterCard</option>");
writer.Write(
"</select>");
writer.Write(
"</td>");
writer.Write(
"</tr>");
writer.Write(
"<tr>");
writer.Write(
"<td><strong>Credit Card No.</strong></td>");
writer.Write(
"<td><input name='CreditCardNo' id='CreditCardNo' type='text' /></td>");
writer.Write(
"</tr>");
writer.Write(
"<tr>");
writer.Write(
"<td><strong>Cardholder's Name</strong></td>");
writer.Write(
"<td><input name='CardholderName' id='CardholderName' type='text' /></td>");
writer.Write(
"</tr>");
writer.Write(
"<tr>");
writer.Write(
"<td><strong>Expiration Date</strong></td>");
writer.Write(
"<td>");
writer.Write(
"<select name='Month' id='Month'>");
for (int day = 1; day < 13; day++)
{
if (day < 10)
writer.Write(
"<option value='" + day.ToString() + "'>" + "0" + day.ToString() + "</option>");
else
writer.Write(
"<option value='" + day.ToString() + "'>" + day.ToString() + "</option>");
}
writer.Write(
"</select>");
writer.Write(
"&nbsp");
writer.Write(
"<select name='Year' id='Year'>");
for (int year = 2005; year < 2015; year++)
{
writer.Write(
"<option value='" + year.ToString() + "'>" + year.ToString() + "</option>");
}
writer.Write(
"</select>");
writer.Write(
"</td>");
writer.Write(
"</tr>");
writer.Write(
"<tr>");
writer.Write(
"<td align='center' colspan='2'>");
writer.Write(
"<input type='submit' value='Submit' />");
writer.Write(
"</td>");
writer.Write(
"</tr>");
writer.Write(
"</table>");

base.Render(writer);
}
}
}

NET技術(shù)asp.net控件開(kāi)發(fā)基礎(chǔ)(1),轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 国产乱码精品一区二区三区忘忧草 | 亚洲精品久久久久中文字幕二区 | 中文字幕免费在线 | 亚洲一区二区三区四区五区午夜 | 国产色 | 一区二区三区四区免费视频 | 欧美一区二区三区四区视频 | 久久新| 亚洲视频免费观看 | 色妞av| 国产夜恋视频在线观看 | 亚洲成人999 | 亚洲成网| 午夜激情国产 | 中文字幕精品一区久久久久 | 久久久久久久久中文字幕 | 四虎影 | 在线一区二区三区 | 日韩美av| 久久中文视频 | 久久久妇女国产精品影视 | 国产精品久久在线观看 | 国产精品久久久久久久久久久免费看 | 久久999| 国产一区二区三区视频免费观看 | 中文字幕av网 | 国产综合久久久 | 男人的天堂视频网站 | 国产精品久久久久久久久久久免费看 | 中国黄色在线视频 | 色视频网站在线观看 | 久操伊人 | 精品福利在线 | 亚洲成人蜜桃 | 久久精品欧美一区二区三区不卡 | 日本在线黄色 | 亚洲成av人片在线观看无码 | 米奇狠狠鲁 | 国产精品伦一区二区三级视频 | 日本一道本 | 亚洲视频中文字幕 |