開發asp.net自定義控制元件(asp.net學習筆記三) (轉)
:namespace prefix = o ns = "urn:schemas--com::office" />
By Cash
.4.25
上一章我們寫了一個最簡單的自定義,此次讓我們拋開理論,實際開發一個具有實用意義的自定義控制元件:一個可以設定的選單。
在這個專案中我們將不採用任何未學到的理論知識,只需要具有基本的知識就可以。如你所知,控制元件不過是對一些HTML及script的封裝罷了。至於其它的技巧,將來我們會逐漸提及並應用,最終生產出具有商業水準的控制元件來。
製作這個控制元件的思路很簡單:首先使用DHTML寫出一個選單來,然後把其中的屬性提取出來,接著封裝起指令碼與HTML顯示程式碼,最後將其作為引數重寫Render方法。你看,就這麼簡單。
如果不想透過閱讀程式碼(那實在很討厭),你可以到如下地址這個專案的原始碼,其中包括這個自定義控制元件的及各類測試:不同的資料來源以及許可權設定。
首先在名稱空間CashControls中宣告一個列舉型別MainMenuAlign:
public enum MainMenuAlign
{
///
/// 左
///
left=0,
///
/// 中間
///
center=1,
///
/// 右
///
right=2
}
接著宣告繼承自Controls的類CashMenu,宣告如下變數及屬性:
變數:
private System.Web.HttpContext context;
private System.Xml.XmlDocument oXmlDoc=new XmlDocument();
private string menuData;
private MainMenuAlign mainMenuAlign=MainMenuAlign.center;
private string ruleString="admin";
private int cellspacing;
private int mainMenuHeight;
屬性:
///
/// 屬性MenuData用於指定資料來源,可以是某個XML檔案,
///也可以是XML格式之字串
///
[Bindable(true),
Category("Data"),Description("為Menu提供XML資料來源.")]
public string MenuData
{
get
{
return menuData;
}
set
{
menuData = value;
Build();
}
}
......
宣告輔助方法:
///
/// 方法Build用於綁寫資料來源,將其繫結到Context上,在屬性MenuData中
///
private void Build()
{
if (menuData!=null)
try
{
contextObject = this.Context;
if (contextObject!=null)
oXmlDoc.Load(contextObject.Server.MapPath(menuData));
}
catch
{
try
{
oXmlDoc.LoadXml(menuData);
}
catch (Exception e)
{
contextObject.Response.Write("開啟資料來源失敗!
");
contextObject.Response.Write(e.Message);
}
}
return;
}
///
/// 方法GenerateHtml用於生成Html程式碼,呼叫TraverseMenuTree方法,傳遞Context中oXmlDoc的一個節點進去
///
///
private string GenerateHtml()
{
string tempHtml = "";
if (oXmlDoc.ChildNodes.Count !=0)
{
try
{
tempHtml = tempHtml + TraverseMenuTree(oXmlDoc.ChildNodes.Item(1).FirstChild);
}
catch
{
throw new ArgumentException("發生錯誤.");
}
}
return(tempHtml);
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-956468/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 開發asp.net自定義控制元件(asp.net學習筆記四) (轉)ASP.NET控制元件筆記
- 開發asp.net自定義控制元件(asp.net學習筆記五) (轉)ASP.NET控制元件筆記
- ASP.NET MVC 學習筆記-7.自定義配置資訊ASP.NETMVC筆記
- 建立ASP.NET WEB自定義控制元件(轉)ASP.NETWeb控制元件
- 自定義asp.net控制元件分析 (一) (轉)ASP.NET控制元件
- 自定義asp.net控制元件分析(二) (轉)ASP.NET控制元件
- Asp.net控制元件開發學習筆記(七)—-WebControl基類ASP.NET控制元件筆記Web
- ASP.NET學習筆記2ASP.NET筆記
- 控制元件開發學習筆記(一)——ToolboxData含義控制元件筆記
- ASP.Net MVC開發基礎學習筆記(1):走向MVC模式ASP.NETMVC筆記模式
- 談談學完Asp.net 中的自定義控制元件後的感受ASP.NET控制元件
- 【ASP.NET開發】ASP.NET(MVC)三層架構知識的學習總結ASP.NETMVC架構
- ASP.NET MVC學習筆記:(一)路由匹配ASP.NETMVC筆記路由
- Asp.Net Core學習筆記:入門篇ASP.NET筆記
- ASP.Net MVC開發基礎學習筆記(10):分部檢視PartialViewASP.NETMVC筆記View
- ASP.NET 學習手記ASP.NET
- ASP.Net MVC開發基礎學習筆記(2):HtmlHelper與擴充套件方法ASP.NETMVC筆記HTML套件
- iOS學習筆記--PresentedVC自定義彈窗iOS筆記
- Java學習筆記之自定義異常Java筆記
- ASP.NET Core 學習筆記 第四篇 ASP.NET Core 中的配置ASP.NET筆記
- ASP.Net MVC開發基礎學習筆記(4):校驗、AJAX與過濾器ASP.NETMVC筆記過濾器
- ASP.Net MVC開發基礎學習筆記(5):區域、模板頁與WebAPI初步ASP.NETMVC筆記WebAPI
- 解決Asp.net中翻頁問題的自定義使用者控制元件 (轉)ASP.NET控制元件
- ASP.NET Core 學習筆記 第三篇 依賴注入框架的使用ASP.NET筆記依賴注入框架
- ASP.NET Core 學習筆記 第五篇 ASP.NET Core 中的選項ASP.NET筆記
- R/3 ABAP開發學習筆記(轉)筆記
- Pytest學習筆記6-自定義標記mark筆記
- Activiti學習筆記三:管理流程定義筆記
- 【學習筆記】ASP.NET簡易的SQLHelper幫助類筆記ASP.NETSQL
- ASP.NET自定義驗證控制元件CustomValidator 的使用方法ASP.NET控制元件
- 【ASP.NET Core】自定義的配置源ASP.NET
- ASP.NET Core - 自定義中介軟體ASP.NET
- ASP.Net MVC開發基礎學習筆記(3):Razor檢視引擎、控制器與路由機制學習ASP.NETMVC筆記路由
- (一)學習瞭解OrchardCore筆記——開篇:基於asp.net core的OrchardCore筆記ASP.NET
- Kinect開發學習筆記之(三)Kinect開發環境配置筆記開發環境
- 步步學習自定義View:Hencoder 精簡版學習筆記(一)View筆記
- Asp.Net 4.0 新特性之 使用自定義OutputCache Provider(轉)ASP.NETIDE
- ASP.NET Core 學習筆記 第二篇 依賴注入ASP.NET筆記依賴注入