DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML基礎 >> XML在.net平台下的自定義控件的應用
XML在.net平台下的自定義控件的應用
編輯:XML基礎     

 

Xml全稱可擴展標記語言(extensible marked language),這套語言系統由於在數據處理,跨平台等方面的獨特優勢,在近幾年風靡全球。Xml語言系統把任何數據都作為“鍵”和“值”來進行處理,這一點類似於很多數據庫管理系統(DBMS),而且它與具體的機器指令無關,其存儲方式是純文本文件,因此具有出色的跨平台性。另外它允許用戶創建自己的數據指令系統,在這套指令系統的框架下,用戶可以把所有信息轉換成易於存取的數據,大大加快了開發的周期和代碼的可移植性。
  
    既然XML這麼好,那它到底是什麼樣子的呢?最近筆者因為課題的需要,開發了一個基於.net平台下的menu控件,並且加入了xml特性。制作的步驟如下:
  
    第一步:制作一個.net平台下的menu控件
  
    .net平台下面的自定義控件的工作原理如下:控件對應於一個類(class),控件的所有屬性通過類的成員變量來暴露,而控件的方法對應於class的成員函數。在控件被加載的手,系統會調用class的render方法,制作控件的時候,應該重載(override)這個render方法,使得在控件被加載的那 一刻,控件可以自己“繪制”自己,一般來說,在render方法裡面要將關於控件界面繪制的那些javascript文件放入到輸出流中。
  
    由於這裡重要是講解後面XML的應用,所以這裡只是把自定義控件的原來簡要說明一下,下面羅列出相關對象,屬性,方法。
  
    整個menu控件分為Topmenu,Submenu,Childrenmenu,MenuItem四個對象,其相應的信息為:
  
    控件屬性:
  
     ID:標識控件名字
  
     MenubarHeight:菜單攔的高度
  
     MenubarWidth::菜單攔的寬度
  
     BorderWidth::邊框寬
  
     AutoDropdown:true表示自動下拉,false表是單擊鼠標下拉
  
     DropdownDelay:下拉時間
  
     Menufont:字體
  
     LocationX:菜單的x位置
  
     LocationY:菜單的y位置
  
     XmlFile:xml文件
  
     XmlStream:xml流
  
     topmenu對象屬性:
  
     ID:同上
  
     Text:頂層菜單的文本
  
     Isparent:true表示有下一級菜單,否則為false(false默認)
  
     Islink:需要用事件處理用true,否則false(false默認);
  
     Bgcolor:背景色
  
     Forecolor:前景色
  
     HoveredBackcolor:鼠標放在上面的顏色
  
     Topmenufont:字體
  
     Linkurl:當isparent為false才有效,表示連接的url
  
     Borderwidth:topmenu的邊框寬
  
     Itemheight:下一級菜單的高度(必須isparent為true才有效)
  
     Itemwidth: 下一級菜單的寬度(必須isparent為true才有效)
  
     Submenus:含有下一級菜單的數組列表
  
     Submenu,Childrenmenu 和MenuItem的所有屬性跟上面Topmenu一樣,這裡就不贅述了。
  第二步,就是加入XML特性
  
    注意,任何xml文檔在其被處理之前最好先進行有效性驗證,提供驗證一般有兩種重要的途徑。其一就是提供DTD(文檔類型定義),實際上就是讓用戶提供指令集,然後在xml文檔加載的時候對其進行有效性分析,看是否有無效指令,簡單說就是創建一個編譯環境;另外一個就是提供一個所謂的schema。.其作用跟DTD完全一樣,只是在表現形式上好於DTD,因為它本身也是一個XML文檔。這裡我采用了schema的形式,當然了,讀者用興趣也可以將其替換問相應的DTD版本。下面列出該schema的關於控件和topmenu對象的代碼,如果要看該文檔的詳細代碼,請看 “代碼.doc”。
  
    menu.xdr:
  
  <?xml version="1.0" encoding="UTF-8"?>
  
  <Schema name="menus" xmlns=

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved