10個ASP.NET編程技巧(2)_.Net教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:asp.net回發(fā)或回調(diào)參數(shù)無效解決方法首先,這個問題出現(xiàn)在asp.net2.0中,我是在做一個二級菜單出現(xiàn)了這個問題 , 該功能用javascript改變DrownDownList內(nèi)容后再提交就出現(xiàn)這個錯誤, 總結 網(wǎng)上的解決 回發(fā)或回調(diào)參數(shù)無效 方法主要有: 一是在前臺aspx頁中設置 %@ Page Language=C# EnableEv
4、使用StringBuilder類
字符串在.NET框架中是不可變的,這意味著改變字符串的操作符和方法會返回字符串的改變后的拷貝,這意味著性能還有提高的空間。當進行大量的字符串操作時,使用StringBuilder類就是一種比較好的選擇了。
下面的C#代碼測試用二種方式從10000個子字符串中生成字符串所需要的時間。第一次使用了一個簡單的字符串串聯(lián)操作;第二次使用了StringBuilder類。
要想查看結果字符串,可以去掉下面的代碼中注解行的注解符號:
以下為引用的內(nèi)容:
| < %@ Page Language=”C#” %> < script runat=”server”> void Page_Load(Object Source, EventArgs E) { int intLimit = 10000; DateTime startTime; DateTime endTime; TimeSpan elapsedTime; string strSub; string strWhole = “”; // 首先執(zhí)行字符串連接操作 startTime = DateTime.Now; for (int i=0; i < intLimit; i++) { strSub = i.ToString(); strWhole = strWhole + “ “ + strSub; } endTime = DateTime.Now; elapsedTime = endTime - startTime; lblConcat.Text = elapsedTime.ToString(); // lblConcatString.Text = strWhole; // 使用stringBuilder類進行同樣的操作 startTime = DateTime.Now; StringBuilder sb = new StringBuilder(); for (int i=0; i < intLimit; i++) { strSub = i.ToString(); sb.Append(“ “); sb.Append(strSub); } endTime = DateTime.Now; elapsedTime = endTime - startTime; lblBuild.Text = elapsedTime.ToString(); // lblBuildString.Text = sb.ToString(); } < /script> < html> < body> < form runat=”server”> < h1>String Concatenation Benchmark< /h1> Concatenation: < aspabel id=”lblConcat” runat=”server”/> < br/> < aspabel id=”lblConcatString” runat=”server”/> < br/> < br/> StringBuilder: < aspabel id=”lblBuild” runat=”server”/> < br/> < aspabel id=”lblBuildString” runat=”server”/> < /form> < /body> < /html> |
比使用字符串連接的速度快近200倍。
5、只在必要時使用服務器端控件
ASP.NET中新引入了一種在服務器端運行的被稱作Web Server Controls的控件,在代碼中,它們經(jīng)常通過下面的語法被說明:
< asp:TextBox id=”txtLastName” size=”40” runat=”server” /> 它們有時也被稱作ASP控件。服務器端控件是由runat屬性指示的,它的值總是“server”。
通過添加runat屬性,一般的HTML控件可以被很方便地轉換到服務器端運行,下面是一個簡單的例子:
< input type=”text” id=”txtLastName” size=”40” runat=”server” />
可以通過id屬性中指定的名字,我們可以引用程序中的控件,可以通過編程的方式設置屬性和獲得值,因此,服務器端處理方式有較大的靈活性。這種靈活性是有一定代價的。每種服務器端控件都會消耗服務器上的資源。另外,除非控件、網(wǎng)頁或應用程序明確地禁止view state,控件的狀態(tài)是包含在view state的隱藏域中,并在每次回送中都會被傳遞,這會引起嚴重的性能下降。
在這方面的一個很好的例子是,網(wǎng)頁上控件表格的應用,如果不需要在代碼中引用表格中的元素,則使用無需進行服務器端處理的HTML表格。我們?nèi)匀豢梢栽贖TML表格單元中放置服務器控件,并在代碼中引用服務器控件。如果需要引用任意的表格元素,例如指定的單元,則整個表格必須是服務器控件。
6. HyperLink控件、LinkButton控件的差別
對于Web訪問者而言,HyperLink、LinkButton控件是一樣的,但它們在功能方面仍然有較大的差異。當用戶點擊控件時,HyperLink控件會立即將用戶“導航”到目標URL,表件不會回送到服務器上。LinkButton控件則首先將表件發(fā)回到服務器,然后將用戶導航到目標URL。如果在“到達”目標URL之前需要進行服務器端處理,則使用LinkButton控件;如果無需進行服務器端處理,則可以使用HyperLink控件。
7、注釋代碼
這一技巧并不是針對ASP.NET的,但它是一個良好的編程習慣。 注釋不僅僅應當說明代碼會執(zhí)行什么操作,還應當注明原因。例如,不要僅僅在注釋中說明是在遍歷數(shù)組,而是要說明遍歷數(shù)組是根據(jù)某一算法計算一個值,除非算法是相當簡單的,否則還應當對算法進行簡要的說明。
.NET工程中的不同的編程語言都有各自不同的注釋符號,下面是一個簡要的說明:
以下為引用的內(nèi)容:
HTML < !-- 注釋 -->JavaScript // 注釋VBScript ‘ 注釋VB.NET ‘ 注釋C# // 注釋/* 多行內(nèi)容的注釋*/
SQL -- 注釋
在服務器控件的開始和結束標記中沒有注釋符號,但服務器能夠忽略掉所有它不能識別的屬性,因此我們能夠通過使用沒有定義的屬性來插入注釋。下面是一個例子:
< asp:TextBox id=”txtLastName” size=”40” comment=”這是我的注釋” runat=”server” />
在Visual Studio .NET中對源代碼進行注釋非常簡單。高亮度顯示需要注釋的行,然后按Ctrl+K+C組合鍵添加注釋。要刪除注釋,只需高亮度顯示被注釋的代碼,并按下Ctrl+K+U組合鍵。
在C#工程中,我們還可以通過在每行的開始處使用///輸入XML注釋小節(jié)。
在注釋小節(jié)中,我們可以使用下面的XML標記組織注釋:
以下為引用的內(nèi)容:
| < summary>< /summary> < remarks>< /remarks > < param>< /param> < returns>< /returns> < newpara>< /newpara> |
要在Visual Studio .NET中查看這些XML注釋的格式化的報告,我們可以首先選擇“工具”菜單項,然后選擇“建立注釋Web網(wǎng)頁”菜單項。
分享:ASP.NET 2.0中CSS不正常的解決方法ASP.NET2.0(ASP.NET1.x中可能是有效的)網(wǎng)頁制作項目中有時會發(fā)現(xiàn)中CSS失效的問題,經(jīng)過總結現(xiàn)把主要成原和解決方法說明如下: 1、CSS文件路徑不正確 這個問題屬于Web開發(fā)中的基礎問題,一般采用相對路徑會出現(xiàn)這樣的問題,或者樣式文件寫在了模板頁里面,在內(nèi)
相關.Net教程:
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-10個ASP.NET編程技巧(2)
。