建立AJAX擴充套件程式控制元件

2022-12-27 07:54:03 字數 3303 閱讀 1988

建立擴充套件程式控制元件以將

客戶端行為與 web 伺服器控制項關聯

中的 ajax 功能使您能夠擴充套件 web 應用程式的功能以建立豐富的使用者體驗。可以使用 web 瀏覽器的 ecmascript (j**ascript)、dhtml 和 ajax 功能,提供視覺化效果、客戶端處理(如驗證)等。

本教程演示如何建立乙個用於封裝客戶端行為並將其鏈結到 web 伺服器控制項的擴充套件程式控制元件。客戶端行為可將功能新增到瀏覽器的文件物件模型 (dom) 元素中。然後,將擴充套件程式控制元件與乙個或多個型別的 伺服器控制項關聯,以將此行為新增到這些伺服器控制項中。

可以將多個擴充套件程式控制元件與乙個 伺服器控制項關聯。

在本教程中,您將了解如何執行以下操作:

建立乙個封裝客戶端行為的擴充套件程式控制元件,並將該控制項附加到 網頁上的 web 伺服器控制項中。

建立與 web 伺服器擴充套件程式控制元件關聯的客戶端行為。

通過使用客戶端行為來處理瀏覽器 dom 中的事件。

將自定義擴充套件程式控制元件編譯到乙個程式集中,並將關聯的 j**ascript 檔案作為資源嵌入到同一程式集中。

在支援 ajax 的 網頁中引用已編譯的自定義擴充套件程式控制元件。

標識客戶端要求

本教程實現乙個簡單的客戶端行為,當某個控制項(例如 textbox 或 button 控制項)在瀏覽器中被選定(或具有焦點)時,此客戶端行為會在網頁上突出顯示該控制項。例如,該控制項在具有焦點時可能更改背景色,然後在焦點移動到另乙個控制項時返回到預設顏色。

若要實現此行為,本教程中的客戶端控制項需要下表中列出的功能。

建立擴充套件程式控制元件

若要封裝供 頁開發人員使用的客戶端行為,可以使用擴充套件程式控制元件。擴充套件程式控制元件是繼承了 命名空間中的 extendercontrol 抽象類的 web 伺服器控制項。擴充套件程式控制元件可應用於特定的 web 伺服器控制項型別。

通過使用 targetcontroltypeattribute 特性標識可以應用擴充套件程式控制元件的 web 伺服器控制項的型別。

本教程中的擴充套件程式控制元件可應用於任何型別的 web 伺服器控制項。下面的示例演示類定義。

[targetcontroltype(typeof(control))]

public class focu***tender : extendercontrol

新的擴充套件程式控制元件包括兩個用於實現客戶端要求的屬性:

highlightcssclass,用於標識在 dom 元素具有焦點時對其應用的 css 類以便突出顯示該控制項。

nohighlightcssclass,用於標識在 dom 元素沒有焦點時對其應用的 css 類。

繼承 extendercontrol 抽象類

下表列出了必須在擴充套件程式控制元件中實現的 extendercontrol 抽象類的成員。

本教程中的擴充套件程式控制元件使用 getscriptdescriptors()()()() 方法來定義客戶端行為型別的例項。該控制項建立新的 scriptbeh**iordescriptor 物件(scriptbeh**iordescriptor 類派生自 scriptdescriptor 類)並在 getscriptdescriptors 方法的返回值中包含此物件。

scriptbeh**iordescriptor 物件包括客戶端類的名稱 ( 和關聯的(目標)web 伺服器控制項的 clientid 值。將客戶端類名稱和 clientid 屬性值提供給 scriptbeh**iordescriptor 物件的建構函式。將對目標 web 伺服器控制項的引用作為引數提供給 getscriptdescriptors(control) 方法。

可以使用該引用來確定目標 web 伺服器控制項的 clientid 值(對於呈現的 dom 元素則為 id 值)。

scriptbeh**iordescriptor 類用於設定客戶端行為的屬性值,這些屬性值是從伺服器上的擴充套件程式控制元件的屬性中獲得的。為了定義客戶端行為的屬性,擴充套件程式控制元件使用 scriptbeh**iordescriptor 類的 addproperty 方法。然後,擴充套件程式控制元件根據伺服器擴充套件程式控制元件的相應屬性為客戶端行為的屬性指定名稱和值。

此示例使用 scriptbeh**iordescriptor 物件來設定客戶端行為中的 highlightcssclass 和 nohighlightcssclass 屬性的值。

擴充套件程式控制元件在 getscriptdescriptors 方法的返回值中提供 scriptbeh**iordescriptor 物件。因此,當對瀏覽器呈現 web 伺服器控制項時, 將呈現 j**ascript,此 j**ascript 使用所有定義的屬性和事件處理程式建立客戶端行為的例項。根據目標 web 伺服器控制項中呈現的 clientid 屬性,將該行為例項附加到 dom 元素。

下面的示例演示宣告性 標記,此標記在乙個頁中包含乙個 伺服器控制項和本教程中的擴充套件程式控制元件。

id="focu***tender1"

highlightcssclass="myhighlight"

nohighlightcssclass="mylowlight"

targetcontrolid="textbox1" />

呈現的頁輸出包括對 $create 方法的呼叫,此方法標識要建立的客戶端行為。該頁還提供客戶端行為的屬性的值以及客戶端行為針對的 dom 元素的 id 值。下面的示例演示呈現的 $create 方法。

$create( , null, null, $get('textbox1'));

本教程中的擴充套件程式控制元件使用 getscriptreferences 方法來傳遞定義客戶端行為型別的指令碼庫的位置。在此示例中,這是乙個指向名為 的指令碼檔案的 url,此指令碼檔案將在本教程的後面建立。通過建立新的 scriptreference 物件,然後將 path 屬性設定為包含客戶端**的檔案的 url 來建立引用。

下面的示例演示 getscriptdescriptors 和 getscriptreferences 方法的實現。

protected override ienumerable getscriptreferences();}

protected override ienumerable getscriptdescriptors(control targetcontrol);}

建立客戶端行為

在擴充套件程式控制元件中,getscriptreferences 方法指定乙個 j**ascript 檔案 (該檔案包含針對行為型別的客戶端**。本節描述該檔案中的 j**ascript **。

客戶端行為**與由 getscriptdescriptors 方法返回的 scriptdescriptor 物件中指定的成員匹配。客戶端行為也可包含與伺服器擴充套件程式控制元件中的成員不對應的成員。

本教程中的擴充套件程式控制元件將客戶端行為的名稱設定為 並定義客戶端行為的兩個屬性:highlightcssclass 和 nohighlightcssclass。

win7如何利用磁碟管理建立擴充套件分割槽

win7系統下管理新硬碟,進入 計算機管理 磁碟管理 視窗後,雖然可以對新硬碟進行格式化和建立主分割槽的操作,但卻無法建立擴充套件分割槽。如果你安裝了雙系統那還好辦,如果只有win7乙個系統,那該怎麼辦呢?解決方法如下 單擊 開始 選單,從附件中找到 命令提示符 右擊選擇 以管理員身份執行 開啟命令...

熱工程控組主檢工作標準

1 範圍 本標準規定了華電內蒙古能源 卓資發電分公司裝置檢修部熱工程控組主檢的任職條件 工作內容與要求 職責與許可權 檢查與考核的內容。本標準適用於華電內蒙古能源 卓資發電分公司裝置檢修部熱工程控組主檢。2 任職條件 2.1 具有高中及技校以上文化程度。2.2 熟知 安全工作規程 檢修規程 和各種規...

計組實驗三微程式控制器實驗

計算機學院電腦科學與技術專業班 組 學號 姓名 協作者教師評定 實驗題目 微程式控制器實驗 1.實驗目的與要求 1.理解時序產生器的原理,了解時鐘和時序訊號的波形。2.掌握為程式控制器的功能。3.掌握微指令格式和各字段的功能。4.掌握微程式的編制,寫入,觀察微程式的執行,學習基本指令的執行流程。5....