日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

揭秘6條ASP.NET編程實用技巧_.Net教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:解讀ASP.NET常用路徑(path)獲取方法對照表
在web服務器端開發(fā)中經(jīng)常會遇到各種不同形式的path,而且經(jīng)常記不清楚如何獲取到某種特定格式,今天抽了點時間把常用的path獲取方法與格式做了一個簡單的對照表,以備日后查用。 Request獲取的信息 Request.AppRelativeCurrentExecutionFilePath~/SysOption/B

      1.跟蹤頁面執(zhí)行
      設置斷點是頁面調試過程中的常用手段,除此之外,還可以通過查看頁面的跟蹤信息進行錯誤排查以及性能優(yōu)化。ASP.NET中啟用頁面跟蹤非常方便,只需在Page指令中加入Trace="True"屬性即可: 
<%@ Page Language="C#" Trace="true"> 

      跟蹤信息可以分為兩類:
      a.頁面執(zhí)行詳細情況
      其中主要包括頁面生命周期中各事件列表、控件樹列表(可以查看每個控件的HTML字節(jié)數(shù)以及ViewState字節(jié)數(shù))、Session狀態(tài)、Application狀態(tài)、Cookie集合、QueryString集合、服務器變量等信息。
      b.自定義跟蹤信息
      通過在頁面代碼中調用Trace.Write()或Trace.Warn()方法便可將指定內容寫入跟蹤信息中的"Trace Information"節(jié)。就算頁面發(fā)生了錯誤,跟蹤信息還是會顯示出來,并且在發(fā)布應用程序時無需刪除相關的跟蹤代碼,只需從Page指令中移除Trace屬性即可。 
      2.在服務器端控件中添加客戶端屬性
      我們有時會向服務器端控件中添加一些特殊的屬性,這類屬性不需要服務器端的處理,只需簡單的發(fā)送至客戶端即可,我們不妨稱其為客戶端屬性,例如HTML屬性或自定義屬性(可能用于實現(xiàn)某種特定的JavaScript功能)�?梢酝ㄟ^以下幾種方法達到這個目的:
      a.直接向控件添加客戶端屬性 
<asp:Button ID="MyButton" Text="ClickMe" onmouseover="this.style.cursor=’pointer’" runat="server" />

      其中的onmouseover是客戶端屬性,注意,編譯器是允許這種寫法的,但會顯示警告。
      b.調用內置方法
      可以通過調用WebControl.Attributes.Add()方法為控件添加客戶端屬性,如下所示: 
MyButton.Attributes.Add("onmouseover", "this.style.cursor=’pointer’");

      這也是最常用的方法。
      c.創(chuàng)建自定義控件
      如果某個類型的服務器端控件中經(jīng)常需要添加客戶端屬性,則可以考慮創(chuàng)建一個繼承自該服務器端控件的自定義控件,其中包含特定的客戶端屬性。
      正是考慮到這一點,ASP.NET 2.0中為按鈕控件(包括Button、LinkButton、ImageButton控件)提供了OnClientClick屬性,可以這樣寫: 
MyButton.OnClientClick = "alert(’Hello!’)";

      真是貼心的功能! 
      3.表單數(shù)據(jù)的服務器端驗證
      將數(shù)據(jù)驗證任務從服務器端遷移到客戶端的過程促使了JavaScript的產(chǎn)生,這也是我們沿用至今的一種方式。但只有在保證客戶端JavaScript正常運行的前提下,這種方式才能發(fā)揮其作用。不幸的是,總有一些例外,比如瀏覽器不支持JavaScript,或者用戶刻意關閉了瀏覽器的JavaScript功能,這就導致了第一重防護失效。比較保險的做法是加入第二重防護,即對用戶提交的數(shù)據(jù)進行服務器端驗證,但這無疑將增加開發(fā)者的工作量。
      ASP.NET 2.0提供了一系列表單數(shù)據(jù)驗證控件,可以非常輕松的完成客戶端及服務器端的雙重數(shù)據(jù)驗證任務。但要使服務器端驗證功能發(fā)揮作用,還需要用到Page.IsValid屬性,請看下面的例子: 
<form id="MyForm" runat="server">
  <div>
    姓名:<asp:TextBox ID="txtName" runat="server"></asp:TextBox>&nbsp;<asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtName" ErrorMessage="請?zhí)顚懶彰?quot; Display="Dynamic" runat="server"></asp:RequiredFieldValidator>
  </div>
  <div>
    <asp:Button ID="btnSubmit" Text="提交" runat="server" />
  </div>
</form>

      這是一個HTML片段,其中有一個RequiredFieldValidator控件用于檢查是否已填寫姓名。下面是點擊按鈕時執(zhí)行的服務器端代碼: 
protected void btnSubmit_Click(object sender, EventArgs e)
{
    if (Page.IsValid) //注意:不要遺漏對Page.IsValid屬性的判斷
    {
        Response.Write("你的名字是:" + txtName.Text);
    }
}

      其中,要特別注意對Page.IsValid屬性的判斷,只有頁面中所有驗證控件對數(shù)據(jù)的驗證都成功時,Page.IsValid屬性才為True,這代表提交的數(shù)據(jù)為有效數(shù)據(jù),可以進入下一步操作。 
      4.跳過表單驗證
      在某些情況下,我們需要跳過表單中所有控件的驗證,然而在另外一些情況下,我們卻希望有選擇的觸發(fā)表單中某些控件的驗證功能。分別來看看這兩種情況:
      a.跳過所有驗證
      假設有個表單,其中除了各種數(shù)據(jù)錄入控件外還有兩個按鈕,一個是提交按鈕,另一個是取消按鈕,同時表單中還有一些數(shù)據(jù)驗證控件。我們希望當點擊取消按鈕的時候無需驗證表單中數(shù)據(jù)的有效性,而是直接將頁面提交至服務器并將其重定向到某個指定頁面。
      要實現(xiàn)這個功能,可以利用按鈕控件(包括Button、LinkButton、ImageButton控件)的CausesValidation屬性,將該屬性設為false即可跳過表單中的所有驗證。
      b.觸發(fā)某些驗證
      假設有個表單,被劃分成兩個功能區(qū),一個用于用戶登錄,另一個用于用戶注冊,我們希望當點擊登錄按鈕時只觸發(fā)登錄區(qū)的數(shù)據(jù)驗證,當點擊注冊按鈕時只觸發(fā)注冊區(qū)的數(shù)據(jù)驗證。
      解決辦法是將相關的數(shù)據(jù)驗證控件和數(shù)據(jù)提交控件(按鈕控件)加入同一個驗證組,這一點是通過將各相關控件的ValidationGroup屬性設為相同的值來實現(xiàn)的。 
      5.保持滾動條位置
      假設有個頁面,其中以列表形式顯示了一些數(shù)據(jù)記錄,每次編輯其中的記錄時都需要向服務器提交頁面,為了提供良好的用戶體驗,我們希望每次編輯一條記錄并保存后,滾動條位置都能保持不變。傳統(tǒng)的做法是每次提交頁面時將當前滾動條所在位置信息按某種方式(Hidden字段或QueryString)傳給服務器端,當頁面返回客戶端時,由服務器端根據(jù)傳入的位置信息以JavaScript形式重新設置滾動條位置。
      如果通過ASP.NET來實現(xiàn)這一功能將變得非常簡單,只需在Page指令中加入MaintainScrollPositionOnPostback="true"屬性即可: 
<%@ Page Language="C#" MaintainScrollPositionOnPostback="true"> 

       6.禁用不必要的ViewState
      在ASP.NET的運行機制中,ViewState起著重要的作用。ViewState經(jīng)過編碼后存入表單Hidden字段,每當頁面回傳至服務器時再進行解碼。因此,ViewState的使用會帶來兩個問題:帶寬的占用以及計算資源的消耗。好在不是所有控件都需要啟用ViewState,我們完全可以禁用不必要的ViewState。
      ViewState默認是開啟的,需要手動關閉:
      a.禁用頁面ViewState
      在Page指令中加入EnableViewState="false"屬性即可: 
<%@ Page Language="C#" EnableViewState="false">

      加入這個屬性后,整個頁面以及其中的所有控件都將無法使用ViewState,因此需謹慎使用。
      b.禁用控件ViewState
      這是推薦的方式,將控件的EnableViewState屬性設為False即可禁用其ViewState,這里有個簡單的竅門:
      如果某個控件的狀態(tài)不能由操作者改變,則可以禁用其ViewState。最典型的莫過于Label控件了,只能顯示信息,無法操作。
      但TextBox、DorpDownList等控件的狀態(tài)是可以改變的(通過輸入、選擇等操作),因此保留他們的ViewState還是有用的。

分享:解析gridview超出長度用..代替,提示顯示詳細信息
for(inti=0;ie.Row.Cells.Count;i++)//獲取總列數(shù) { //如果是數(shù)據(jù)行則添加title if(e.Row.RowType==DataControlRowType.DataRow) {//設置title為gridview的head的text e.Row.Cells[i].Attributes.Add(title,GrvNew.HeaderRow.Cells[i].Text.ToString().Trim

來源:模板無憂//所屬分類:.Net教程/更新時間:2010-01-06
相關.Net教程