自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#重載LoadPostData方法

開(kāi)發(fā) 后端
這里介紹C#重載LoadPostData方法,為了在第一次回寄和所有隨后的回寄中實(shí)現(xiàn)同步,ASP.net在IPostBackDataHandler接口的實(shí)現(xiàn)中提供了一個(gè)LoadPostData方法。

為了在***次回寄和所有隨后的回寄中實(shí)現(xiàn)同步,ASP.net在IPostBackDataHandler接口的實(shí)現(xiàn)中提供了一個(gè)LoadPostData方法。在每一次回寄時(shí)都要調(diào)用LoadPostData方法;因此,你需要在此做一些工作。

值得一提的是,ASP.NET 2.0修整了一個(gè)在1.1版本中被忽視的小地方,然而這一修改能夠使你的工作容易許多。ASP.NET ListBox控件已經(jīng)在兩個(gè)版本(1.1和2.0)中實(shí)現(xiàn)了IPostBackDataHandler接口。但是在2.0版本中,微軟使這個(gè)接口的方法定義虛擬化(virtual,在VB中稱作Overridable)。這意味著,你不必在EnhancedListBox控件中重新實(shí)現(xiàn)這個(gè)接口;而是,你僅需C#重載LoadPostData方法。

更重要的是,這也意味著,你可以存取基類實(shí)現(xiàn)而不必創(chuàng)建所有已經(jīng)存在于你的擴(kuò)展控件中的功能。什么功能呢?這包括微軟加于其中的一切:用于處理 Item集合,SelectedIndex,SelectedValue和SelectedItem屬性,及其它許多執(zhí)行ListBox控件功能的代碼。在ASP.NET 1.1中,你必須在你的派生控件中實(shí)現(xiàn)這個(gè)接口并且要提供你自己對(duì)這兩個(gè)方法的定義代碼,不僅包括你自己的加入的代碼而且還要重復(fù)微軟已經(jīng)在其控制中所實(shí)現(xiàn)的一切。

我猜測(cè),微軟有人已經(jīng)發(fā)現(xiàn)了他們的實(shí)現(xiàn)中的錯(cuò)誤,并且把方法變?yōu)関irtual的,這樣開(kāi)發(fā)者能夠存取基類的代碼。因此,在源碼列表6中向你展示如何實(shí)現(xiàn)C#重載LoadPostData方法。在這個(gè)重載中,你將首先調(diào)用基類實(shí)現(xiàn)代碼;然后,加上你需要的代碼以與Item集合同步。

另外,你還可以利用ListBox控件—通過(guò)把它編寫(xiě)成一個(gè)復(fù)合控件。此時(shí),你需要把ListBox中的每一個(gè)屬性映射到你的EnhancedListBox以便使它成為L(zhǎng)istBox控件的一個(gè)投放位置點(diǎn)位符。無(wú)論使用哪一種方法,或者通過(guò)LoadPostData方法的重新創(chuàng)建,你都仍然需要寫(xiě)很多代碼。如果我專門(mén)為ASP.NET1.1編寫(xiě)這個(gè)控件,那么我很可能采取最直接的方案:復(fù)合控件方案。

LoadPostData方法使你能夠存取寄送到服務(wù)器的每一個(gè)域,包括你的隱藏文本域(存儲(chǔ)在要傳遞到這個(gè)方法的postCollection參數(shù)中)。你可以問(wèn):為什么需要該隱藏文本域,而不是使用這個(gè)參數(shù)來(lái)存取被回寄的< select>元素呢?現(xiàn)在,我作一下解釋。首先,回顧一下典型的ASP時(shí)代,當(dāng)時(shí)你使用Request.Form屬性來(lái)存取頁(yè)面域。在回寄時(shí),你能夠存取一個(gè)< select>元素的唯一的部分是選擇的項(xiàng)。在該方案中,你需要完整的列表內(nèi)容(因此,包括隱藏的文本域)。列表6向你展示如何分析該隱藏的文本域的內(nèi)容并且把Item重新添加到Item集合中。注意,你是怎樣調(diào)用基類實(shí)現(xiàn)的。

***,在你***次生成控件時(shí),你必須構(gòu)建這個(gè)隱藏的文本域,以防在任何重排序前發(fā)生頁(yè)面回寄。Render方法的***一行是:

  1. output.Write("<script language='JavaScript'>BuildItemList
    (document.all." + this.ClientID +",document.all.__" + this.ClientID +");
  2. </script>"); 

你可以在列表1的***看到這一點(diǎn)。

現(xiàn)在,你可以使用EnhancedListBox控件來(lái)重排序一些項(xiàng),回寄,并且確保在重新生成頁(yè)面前,控件的服務(wù)器存儲(chǔ)與在客戶端被改變的客戶端存儲(chǔ)完全同步。因此,現(xiàn)在讓我們使用相同的技術(shù)來(lái)構(gòu)建一個(gè)復(fù)合控件ListMover。 以上介紹C#重載LoadPostData方法。

【編輯推薦】

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

2009-08-25 17:15:50

C#隱藏C#重寫(xiě)C#重載

2009-02-20 09:50:29

C#方法重載編程

2009-07-31 16:00:30

C#函數(shù)重載

2009-08-05 14:09:04

C#日期轉(zhuǎn)換

2009-09-01 11:19:47

C# 3.0擴(kuò)展重載抉

2009-09-01 11:28:32

C#使用函數(shù)重載

2009-09-04 13:18:10

C#允許運(yùn)算符重載

2009-08-12 10:27:12

C#運(yùn)算符重載運(yùn)算符重載實(shí)例

2009-08-12 10:56:47

C#運(yùn)算符重載C#運(yùn)算符重載實(shí)例

2009-08-14 10:16:57

C#運(yùn)算符重載

2009-08-18 18:06:54

C#操作符重載

2009-08-18 17:42:12

C#操作符重載

2009-08-12 12:46:11

C#運(yùn)算符重載

2009-08-12 10:47:03

C#運(yùn)算符重載

2009-08-18 17:55:20

C#操作符重載

2009-09-07 05:31:39

C#窗體關(guān)閉事件

2009-08-17 17:40:53

C# GetAllCu

2009-08-26 09:50:08

C# GreetPeo

2009-08-26 17:16:22

C# CheckSta

2009-08-12 10:37:13

C#運(yùn)算符重載
點(diǎn)贊
收藏

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