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

C# JavaScript函數(shù)使用

開發(fā) 后端
這里介紹MoveItemUp是你已經(jīng)編寫成功的C# JavaScript函數(shù)之一。在生成用于排序的按鈕之前,該代碼將以堆棧存放這些JavaScript命令。

C# JavaScript函數(shù)

為了使用客戶端代碼實現(xiàn)EnhancedListBox中項的重排序,你必須使用JavaScript腳本,并且要把它們依附到EnhancedListBox的兩個按鈕上。為此,我建議你使用“往后考慮”的方法。就象編寫一個老式的ASP以前的Web頁面,首先編寫一些生成HTML文件的JavaScript。為此,最好的方法是運行該控件,然后觀察其源碼并把它的HTML代碼復(fù)制到一個編輯器,再添加JavaScript。下面展示了你需要添加到你的控件中的JavaScript的原始形式。然后,借助于StringBuilder/StringWriter技術(shù),該控件構(gòu)建這部分代碼。該JavaScript代碼由兩部分功能組成:接收一個HTML控件;使用選擇索引并且在列表中上下移動它(基本上與我在本文開始我使用服務(wù)器代碼向你展示的一樣)?,F(xiàn)在,你要理解,你把該JavaScript代碼添加到Web控件的何處。為了實現(xiàn)在一個Web表單上有多個EnhancedListBox控件的情況下,該JavaScript代碼不會被重復(fù)復(fù)制,你需要使用Page.ClientScript對象的ReGISterClientScriptBlock方法輸出它。

要使這個方法起作用,你必須在重載的OnInit事件中調(diào)用它。

最后,為使按鈕正確工作,你需要把添加的客戶端方法依附到其上。在下面的代碼中,你會看到引用了一個方法RenderButtons。盡管我沒有把該代碼在此列出,但是它能夠使用我在以前文章中介紹的技術(shù)生成按鈕。當(dāng)時,在生成實際HTML標(biāo)簽的之前,標(biāo)簽屬性是使用 AddAttribute方法以棧式存放的。在此,你使用一樣的技術(shù)把客戶端方法依附到你的按鈕。

  1. string s_MoveUp = "MoveItemUp(document.all." +this.ClientID + ");  
  2. output.AddAttribute(HtmlTextWriterAttribute.OnClick,s_MoveUp);  

記住,MoveItemUp是你已經(jīng)編寫成功的C# JavaScript函數(shù)之一。在生成用于排序的按鈕之前,該代碼將以堆棧存放這些JavaScript命令。對于向下(down)按鈕,你使用一樣的技術(shù)。注意,我使用ClientId代表該生成后的控件的ID;但是,在這個控件位于一個復(fù)合控件內(nèi)部時,這個屬性要考慮使用父控件的名字。

現(xiàn)在,你可以成功地把該控件應(yīng)用于一個Web表單中。你可以使用與你操作一個標(biāo)準(zhǔn)ListBox控件一樣的方式在其上添加一些項。

事實上,這完全是一個投放位置占位符(或ASP.NET ListBox控件)。當(dāng)你使用重排序按鈕時,你將看到列表中的項相應(yīng)地改變順序?,F(xiàn)在讓我們先記下這個問題。如果你把一個按鈕拖動到一個Web表單上 (不需要為之添加代碼)并執(zhí)行一個回寄,你猜會發(fā)生什么呢?完全與我以前描述的一樣;任何你使用重排序按鈕作的重排序改變都將恢復(fù)到在最近一次回寄之前該控件看上去的狀態(tài)。因此,讓我們修改一下這個問題。

首先,我再添加一些JavaScript。注意,這部分代碼被添加到重載的OnInit方法中并且使用StringBuilder/StringWriter技術(shù)進行構(gòu)建;而且,這個JavaScript方法的名字是BuildItemList。這個函數(shù)負責(zé)構(gòu)建列表框完整內(nèi)容的一個字符串描述并且把該串放到要傳遞到該函數(shù)的一個HTML元素的value屬性中。你可以把這看作是列表內(nèi)容的一種串行化。該串行化的輸出風(fēng)格會根據(jù)你自己的設(shè)計的不同而有所不同。調(diào)用這個C#  JavaScript函數(shù)需要依附到該按鈕上的其它代碼。

  1. string s_MoveUp = "MoveItemUp(document.all." + this.ClientID + "); ";  
  2. string s_BuildItemList ="BuildItemList
    (document.all."
     + this.ClientID + ",document.all.__" + this.ClientID + "); ";  
  3. output.AddAttribute(HtmlTextWriterAttribute.Onclick,MoveUp + " " + BuildItemList);  

現(xiàn)在,讓我們來分析一下你發(fā)送到BuildItemList函數(shù)的兩個參數(shù)。第一個參數(shù)相應(yīng)于生成的控件的ID。第二個參數(shù)是另外一個ID,與前一個命名一致,但是前面有一個"__"。這是一個你仍然需要添加到你的Web控件的隱藏的文本框,它將作為一個“串行化”項列表的占位符。我要在OnPreRender事件中注冊這個隱藏的文本域。 

  1. string s_MoveUp = "MoveItemUp(document.all." + this.ClientID + "); ";  
  2. string s_BuildItemList ="BuildItemList(document.all." + this.ClientID +  
  3. ",document.all.__" + this.ClientID + "); ";  
  4. output.AddAttribute(HtmlTextWriterAttribute.Onclick,MoveUp + " " + BuildItemList);  

注意,我已經(jīng)使用我們的控件的ID來標(biāo)識隱藏的文本域。

到目前為止,你已經(jīng)擁有了一個完整功能的Web控件;其中,客戶端JavaScript被綁定到其中的兩個按鈕上。該JavaScript成功地實現(xiàn)在ListBox中的項的重排序并且把其內(nèi)容串行化為一個字符串;然后,該字符串被存儲在一個隱藏的文本域中。所有這些都發(fā)生在客戶端。如果一個回寄發(fā)生,不會發(fā)生重排序,因為當(dāng)重排序時控件的Item服務(wù)器屬性還沒有收到你對它作的任何改變的消息;但是幸運的是,位于隱藏的文本域中的表單的一個串行化快照中發(fā)生了這一變化。現(xiàn)在,你有了可以與Item屬性一起使用的內(nèi)容了。那么,接下來,你該如何實現(xiàn)呢?

【編輯推薦】

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

2009-07-31 14:26:38

JavaScript函C#函數(shù)

2009-08-31 09:21:38

JavaScript調(diào)

2009-09-01 11:28:32

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

2009-07-31 14:47:22

JavaScript函C#

2009-08-31 10:28:00

C# CreateEm

2009-08-31 09:59:13

C# CreateEm

2009-08-31 10:14:49

C# CreateEm

2009-07-30 15:24:13

C#析構(gòu)函數(shù)C#構(gòu)造函數(shù)

2009-08-14 09:27:27

C#構(gòu)造函數(shù)的特性

2009-08-28 17:01:43

C#構(gòu)造函數(shù)

2009-07-31 14:15:38

C# 構(gòu)造函數(shù)

2009-08-24 18:09:13

C#構(gòu)造函數(shù)

2009-07-31 14:03:21

C# Format函數(shù)

2009-08-10 14:43:03

C#函數(shù)Convert

2009-07-31 16:00:30

C#函數(shù)重載

2009-07-31 14:08:54

C# 匿名函數(shù)

2009-07-31 14:54:48

dll函數(shù)C#導(dǎo)出

2009-08-14 17:24:28

C#構(gòu)造函數(shù)和析構(gòu)函數(shù)

2009-07-31 15:44:02

C#靜態(tài)構(gòu)造函數(shù)

2009-08-14 09:15:28

C#調(diào)用構(gòu)造函數(shù)
點贊
收藏

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

主站蜘蛛池模板: 国产福利观看 | 999免费视频| 91成人在线| 成人在线免费观看视频 | 一区二区在线不卡 | 亚洲性在线 | 超碰97在线免费 | 亚洲一区二区三区四区av | 国产在线一区二区三区 | 日韩视频在线一区 | 男人的天堂在线视频 | 欧美 视频 | 免费黄色在线观看 | 免费观看黄网站 | 国产精品亚洲精品 | 婷婷五月色综合香五月 | 久久国产精品久久久久久久久久 | 国产99久久精品一区二区永久免费 | 欧美三级电影在线播放 | 午夜在线影院 | 久久毛片| 国产一区二区三区免费观看视频 | 国产69久久精品成人看动漫 | 视频一二三区 | 请别相信他免费喜剧电影在线观看 | 久久一区精品 | 久久9精品| 一区二区在线不卡 | 99久久免费精品视频 | 日韩一区二区三区视频 | 国产精品久久久久久久岛一牛影视 | 欧美二区乱c黑人 | 国产精品国产三级国产aⅴ原创 | 国产精品一区二区av | 人人玩人人添人人澡欧美 | 日韩中字幕| 狠狠视频 | 日本中文在线视频 | 九九九国产 | 国内精品久久久久 | 亚洲传媒在线 |