成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

創(chuàng)建一個(gè)C# 復(fù)合控件

開發(fā) 后端
這里介紹創(chuàng)建一個(gè)C# 復(fù)合控件,構(gòu)建提供豐富的客戶端接口的復(fù)雜Web控件經(jīng)常需要把一些客戶端JavaScript代碼與控件的服務(wù)器端代碼集成到一起。

本文的目的是把兩個(gè)控件組合起來創(chuàng)建一個(gè)C# 復(fù)合控件(ListMover)。構(gòu)建提供豐富的客戶端接口的復(fù)雜Web控件經(jīng)常需要把一些客戶端JavaScript代碼與控件的服務(wù)器端代碼集成到一起。然而,在一些情況下,為了達(dá)到某種巧妙的效果而把問題搞得過于復(fù)雜經(jīng)常會(huì)破壞控件的內(nèi)部服務(wù)器代碼與生成的客戶端HTML代碼之間的數(shù)據(jù)同步,而當(dāng)進(jìn)行頁(yè)面回寄時(shí)這將成為一個(gè)問題。在本文中,我將首先構(gòu)建兩個(gè)“很酷”的Web控件(都極容易導(dǎo)致這一問題),然后向你展示如何來修改這一“脆弱性”。

當(dāng)前,HTML仍然保持為Web應(yīng)用程序生成階段的主要語(yǔ)言。遺憾的是,它所使用的協(xié)議是無狀態(tài)的,所以必須由Web開發(fā)者自己來處理這種無狀態(tài)特點(diǎn)。通過使用一些架構(gòu)特征,例如回寄機(jī)制和ViewState變量,ASP.NET有助于處理這個(gè)問題。然而,為了實(shí)現(xiàn)某些功能,還需要再作努力,從而借助于回寄事件把Web頁(yè)面不斷向服務(wù)器發(fā)出請(qǐng)求的各種技術(shù)結(jié)合起來。

具體地說,我將分析如何使用JavaScript和DHTML存取在客戶端生成的元素。其實(shí),把客戶端和服務(wù)器功能融合到一起要求使用大量的技巧才能達(dá)到***用戶體驗(yàn)效果,而微軟在其ASP.NET校驗(yàn)控件中就實(shí)現(xiàn)了這一點(diǎn)。為了提供一種豐富的客戶端校驗(yàn)效果,該控件中使用了大量的JavaScript。

作者注:本文假定你對(duì)定制Web控件開發(fā)有一個(gè)基本了解。因此,我將不再重復(fù)Web控件開發(fā)的基礎(chǔ)內(nèi)容,例如屬性工作原理與風(fēng)格的添加方式

下面,我想向你展示如何構(gòu)建一組很酷的控件,它們具有你在商業(yè)控件中才能看到的優(yōu)秀功能。稍后,我將繼續(xù)展示定制Web控件帶給Web編程的完全封裝優(yōu)點(diǎn)。既然你已經(jīng)了解如何開發(fā)定制Web控件,那么你應(yīng)該知道的一個(gè)概念是封裝一個(gè)控件所有的功能和行為(就象你在一個(gè)標(biāo)準(zhǔn)業(yè)務(wù)對(duì)象中所實(shí)現(xiàn)的那樣)。在學(xué)習(xí)構(gòu)建具有復(fù)雜行為的控件時(shí),這種封裝將極有用處。

在***個(gè)控件中,我將向你展示如何構(gòu)建一個(gè)稱為EnhancedListBox的控件。這個(gè)控件將擴(kuò)展ASP.NET的ListBox控件—添加一個(gè)頭部和一些重排序按鈕。注意,這是一個(gè)直接繼承自常規(guī)ListBox的控件。
之后,我還將向你展示如何創(chuàng)建一個(gè)C# 復(fù)合控件—ListMover,它將包含兩個(gè)上面提到的EnhancedListBox控件。這個(gè)ListMover控件還包含一些允許你從一個(gè)列表到另一個(gè)列表中移動(dòng)項(xiàng)的按鈕。

其實(shí),用常規(guī)方法(非面向Web控件的)來實(shí)現(xiàn)這種ASP.NET功能也并不困難。首先,你要把一個(gè)常規(guī)ListBox控件拖動(dòng)到你的Web表單上并且使用一些數(shù)據(jù)填充它。

 然后,再添加一個(gè)標(biāo)簽用作標(biāo)題,還有一組按鈕用作重排序按鈕。捕獲這些按鈕的服務(wù)器端事件是ASP.NET中的標(biāo)準(zhǔn)操作;因此,你只需要使用一種方法來取得當(dāng)前選定的項(xiàng)并且根據(jù)用戶點(diǎn)擊的按鈕從而把它放到該列表中的更高或更低的位置即可。例如,你可能編寫如下的代碼實(shí)現(xiàn)移動(dòng)列表中的一項(xiàng)。

  1. i_Index = ListBox1.SelectedIndex;  
  2. o_Item = ListBox1.SelectedItem;  
  3. ListBox1.Items.RemoveAt(this.SelectedIndex);  
  4. i_Index--;  
  5. if(i_Index < 0) i_Index = 0;  
  6. ListBox1.Items.Insert(i_Index, o_Item);  

下面,讓我進(jìn)行簡(jiǎn)單的分析。首先,我保存了當(dāng)前的列表中選定項(xiàng)的索引值與當(dāng)前項(xiàng)。然后,我在當(dāng)前位置刪除該項(xiàng);之后,在一個(gè)較低位置(上一個(gè)索引值減1)重新插入該項(xiàng)。這里的邏輯非常簡(jiǎn)單,那么為什么我還要說明這個(gè)問題呢?

借助于這種常規(guī)的ASP.NET編程方法,Web表單上面的重排序按鈕將會(huì)引發(fā)一個(gè)實(shí)現(xiàn)ListBox中重排序的服務(wù)器端事件。這是由一個(gè)到服務(wù)器的回寄觸發(fā)的;因此,這個(gè)回寄可能是一次“繁重的”往返,具體要信賴于表單上的具體內(nèi)容及因特網(wǎng)速度。

然而,因?yàn)檫@一代碼實(shí)現(xiàn)的是一個(gè)標(biāo)準(zhǔn)ASP.NET回寄過程,所以由ASP.NET使用它的ViewState機(jī)制來負(fù)責(zé)狀態(tài)處理。當(dāng)再次生成頁(yè)面時(shí),列表框內(nèi)容按要求的順序正確生成。

當(dāng)然,你也可以使用與此相同的常規(guī)方式在ListMover控件中重新創(chuàng)建這個(gè)功能。篇幅所限,我在此省略,只好留待讀者您來實(shí)現(xiàn)。這個(gè)Web表單上包含一對(duì)ListBox,還有一些指示從左向右或從右向左移動(dòng)的按鈕。這些按鈕的服務(wù)器端事件將從一個(gè)ListBox中提取選擇的項(xiàng),然后把它添加到另一個(gè)列表中;反之亦然。如在剛才的例子中所展示的,ViewState在此能夠完好工作以保持這兩個(gè)ListBox中的項(xiàng)。以上介紹如何創(chuàng)建一個(gè)C# 復(fù)合控件。

【編輯推薦】

  1. 概述C# Cast
  2. 淺析C# switch和case
  3. C#托管資源和非托管資源
  4. 分析C# ListBox控件
  5. 簡(jiǎn)單介紹C++ RAII
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-08-19 15:30:40

C#復(fù)合控件構(gòu)建

2009-08-21 17:55:52

C#復(fù)合控件

2009-08-24 10:10:09

C#復(fù)合控件

2009-08-31 13:53:03

C#創(chuàng)建一個(gè)文件

2009-08-31 14:01:50

C#創(chuàng)建一個(gè)文件

2024-09-11 14:46:48

C#旋轉(zhuǎn)按鈕

2011-05-20 16:07:29

C#

2009-09-11 09:11:09

2009-07-22 17:15:04

C#實(shí)現(xiàn)

2009-08-18 17:19:33

C#事件模型

2009-07-30 18:18:27

C#時(shí)間計(jì)算

2009-08-19 11:21:02

C# ListBox控

2009-08-24 11:23:41

C# TimeLabe

2009-08-26 15:53:42

C#數(shù)據(jù)訪問XML

2009-08-25 01:46:00

C# WINDOWS服

2009-08-18 17:41:22

C# ListView

2009-08-11 14:45:41

C# DataGrid

2009-07-31 17:14:19

C#語(yǔ)言Web程序

2009-08-26 17:56:20

C#制做Active控

2009-08-25 15:23:16

C#子線程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产高清久久久 | 日韩精品av一区二区三区 | 国产精品久久久久久影视 | 黄片毛片免费看 | 国产在线观看一区 | 国产成人福利在线观看 | 成人av在线播放 | 欧美天堂在线 | 亚洲高清成人 | 亚洲精品在线免费看 | 久久国产精品一区二区三区 | 欧美在线不卡 | 亚洲精品一| 成人午夜免费视频 | 国产精品欧美精品 | 一区二区三区日韩 | 99久久精品国产毛片 | av中文字幕在线观看 | 色888www视频在线观看 | 精品久久久久久久人人人人传媒 | 成人免费一区二区三区视频网站 | 福利视频一区二区 | 欧美色综合一区二区三区 | 国产精品免费小视频 | 色婷婷综合久久久中文字幕 | 一区二区精品 | 国产精品色av | 九九热视频这里只有精品 | 亚洲成人精品 | 欧洲一区二区在线 | 国产成人综合在线 | 精品成人免费一区二区在线播放 | 欧美一级免费看 | www成人免费 | 人人干超碰 | 九色视频网站 | 天天操夜夜骑 | 欧美精品一区免费 | 在线观看成人免费视频 | 日韩一区二区三区视频在线观看 | 久久久男人的天堂 |