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

解決ASP.NET服務器的幾個問題

開發 后端
本文解決ASP.NET服務器的幾個問題,如果沒有為服務器控件指定該屬性,則可通過其父控件的 Controls 屬性獲取對該控件的引用。

對于每一個服務器控件System.Web.UI.Control 都具有 ID,UniqueID,ClientID 三個屬性,那么這個三者到底有河關系,在客戶端HTML中又是如何對應呈現的呢?

ID:獲取或設置分配給服務器控件的編程標識符。
分配給控件的編程標識符。 (可寫)
設置服務器控件上的此屬性可提供對服務器控件的屬性、事件和方法的編程訪問。Web 開發人員可以通過在 ASP.NET服務器控件的開始標記中聲明 ID 屬性來設置此屬性。

如果沒有為服務器控件指定該屬性(以聲明方式或編程方式),則可通過其父控件的 Controls 屬性獲取對該控件的引用。

注意
在此屬性中包含空格將導致 ASP.NET 頁分析器錯誤。
 
UniqueID:獲取服務器控件的唯一的、以分層形式限定的標識符。(只讀)
服務器控件的完全限定標識符。
此屬性與 ID 屬性不同,因為 UniqueID 屬性包含服務器控件命名容器的標識符。處理頁請求時自動生成此標識符。

此屬性對于區分包含在其他重復的數據綁定服務器控件中的服務器控件尤其重要。重復控件包括 Repeater、 DataList 和 DataGridWeb 服務器控件(或任何在數據綁定時創建的包含重復功能的自定義服務器控件),它們充當其子控件的命名容器。這意味著它為其子控件創建唯一的命名空間,以使它們的 ID 屬性值不沖突。

例如,如果將 ASP.NET服務器控件包含在 Repeater 服務器控件中,并給 Label 控件賦以 MyLabel 的 ID 屬性值,給 Repeater 賦以 MyRepeater 的 ID 屬性值。如果將 Repeater 數據綁定到具有三個項的 ArrayList 對象,則 Label 服務器控件的每個實例所產生的 UniqueID 屬性是 MyRepeater:ctl0:MyLabel、 MyRepeater:Ctl1:MyLabel 和 MyRepeater:Ctl2:MyLabel。

ClientID:獲取生成 ASP.NET服務器控件標識符。  (只讀)
由ASP.NET生成的服務器控件標識符。
有時,不能為控件分配唯一的名稱。例如,如果 Repeater 控件在它的某個模板中包含一個 Label 控件,則為 Repeater 控件中的各個項呈現該 Label 控件的一個實例。在呈現控件的多個實例時,為防止出現命名沖突,ASP.NET 為頁上的各個服務器控件自動生成一個唯一的 ClientID 值。ClientID 值是通過連接控件的 ID 值和它的父控件的 UniqueID 值生成的。如果未指定控件的 ID 值,則使用自動生成的值。生成的 ID 的各個部分以下劃線字符 (_) 分隔。

注意
除了用來分隔 ID 值的是下劃線字符而不是 IdSeparator 屬性指定的字符以外,為控件生成的 ClientID 值與 UniqueID 值相同。默認情況下,IdSeparator 屬性設置為冒號字符 (:)。由于 ClientID 值不包含冒號字符,因此,它可以用于不支持包含冒號的 ID 的 ECMAScript。

ClientID 值經常用于以編程方式訪問為客戶端腳本中的控件呈現的 HTML 元素。有關詳細信息,請參見 ASP.NET 網頁中的客戶端腳本。

總結:
ID,
這個肯定黑熟悉了,用于server端編程引用控件,沒有對應的client值,即不呈現到html中

UniqueID,
asp.net引擎按控件樹層次生成的分層形式限定的標志符,連接符默認為 $ (美元符號)【注:MSDN說默認為 :  (冒號),實際是 $ ,可能文檔有誤吧】,此連接符在asp.net 2.0 中由屬性 IdSeparator  指定,在client中呈現為html元素的name屬性
此屬性主要用來提交(PostBack)客戶端數據,如Request.Form[someControl.UnqiueID]

ClientID,
由父控件的UnqiueID連接本身ID而成,但是連接符不一樣,默認為  _  (下劃線),此連接符在asp.net 2.0 中由屬性 ClientIDSeparator  指定,在client中呈現為html元素的id屬性,
此屬性主要在客戶端教本中使用,如 var o = document.getElementById('< % = someControl.ClientID %>');

updated: 2007年5月20日
關于 UniqueID的層次分隔符號,1.x  中為 :(冒號),而 2.0 已實現為 $(美元符),主要原因可能是 javascript 中標識符是允許 $,而不允許 : 的。(當你偷懶的時候,可以在 js 中直接使用表單元素的 name屬性應用該表單元素,而不用 document.getElementsByName 或者 document.getElementById,不推薦:)

updated: 2007年7月14日
ASP.NET 使用的回發機制(簡單版本)是通過一個原型為 __doPostBack(< ControlUniqueID>, < CommandArgs>) 的 javascript 函數

  1. function__doPostBack(eventTarget,eventArgument){  
  2. if(!theForm.onsubmit||(theForm.onsubmit()!=false)){  
  3. theForm.__EVENTTARGET.value=eventTarget;  
  4. theForm.__EVENTARGUMENT.value=eventArgument;  
  5. theForm.submit();  
  6. }  

此函數的第一個參數 < ControlUniqueID> 對應引起頁面回發控件的客戶端 name 屬性/服務端 UniqueID 屬性,
當用戶引發一個事件,如點擊按鈕,選擇列表框的某一項,首先通過 _doPostBack 函數將此值存在隱藏域中,然后提交頁面。

在服務器端,ASP.NET 引擎通過 HttpRequest.HttpMethod 確定請求是否為 post 方式,若是,則檢索HttpRequest.Request.Form["__EVENTTARGET'],獲取引發回發的控件唯一標識符,并在頁面控件集合層次中查找,若找到此控件,則將在適當階段引發服務器端事件。

【編輯推薦】

  1. ASP.NET開發技巧之Theme功能淺析
  2. 詳解ASP.NET動態編譯
  3. Apache支持ASP.NET方法淺析
  4. 淺談ASP.NET服務器標準控件
  5. ASP.NET中SQL Server數據庫備份恢復淺析
責任編輯:佚名 來源: MSDN
相關推薦

2009-08-10 14:08:15

ASP.NET服務器控ASP.NET組件設計

2009-08-04 15:13:38

2009-08-04 17:18:37

2011-07-12 15:17:02

ASP.net服務器控件

2009-08-03 18:00:00

ASP.NET服務器控

2009-08-10 14:25:33

ASP.NET服務器控

2009-07-28 10:43:23

Web服務器ASP.NET

2009-07-27 17:51:58

WCF服務ASP.NET

2009-07-27 12:56:27

控件CheckBoxLASP.NET服務器

2009-08-04 13:10:05

ASP.NET服務器控

2009-08-04 13:39:43

ASP.NET 2.0

2009-08-06 14:16:04

ASP.NET服務器控

2009-07-23 10:06:29

2009-07-28 12:35:37

querystring

2009-08-06 10:10:31

ASP.NET服務器控ASP.NET Ren

2009-08-01 20:59:08

ASP.NET服務器控ASP.NET服務器ASP.NET

2009-08-06 14:42:54

ASP.NET服務器控

2011-07-12 15:03:28

2009-08-01 10:07:58

ASP.NET服務器控ASP.NET

2009-07-30 16:52:38

復合控件ASP.NET服務器控
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲 中文 欧美 日韩 在线观看 | 国产精品久久久久免费 | 久久久久久久久中文字幕 | 精品国产伦一区二区三区观看方式 | 亚洲乱码一区二区三区在线观看 | 91精品国产色综合久久 | 欧美亚洲另类丝袜综合网动图 | 精品久久影院 | a级网站| 国产成人一区二区三区电影 | 日韩一区二区av | 国产精品久久久久久一级毛片 | 亚洲1区| 日日夜夜精品视频 | 久久久国产一区 | 国产探花 | 亚洲成人精品在线 | 黑人巨大精品欧美一区二区免费 | 成人免费视频在线观看 | 日韩国产精品一区二区三区 | 亚洲国产成人精品女人久久久 | 久草新视频 | 成人欧美一区二区三区白人 | 亚洲人成网站777色婷婷 | 天天精品综合 | va在线 | 国产蜜臀97一区二区三区 | 亚洲成人999 | 午夜欧美 | 久久成人免费视频 | 国产片网站 | 国产日韩欧美一区二区在线播放 | 黄色毛片免费看 | 日韩欧美大片 | 日本特黄a级高清免费大片 成年人黄色小视频 | 精品国产一区二区在线 | 亚洲免费网站 | 激情综合五月 | 久久久久亚洲精品 | 高清黄色 | 一区中文字幕 |