【Asp.net】總結(三)

什麼是AJAX?

  • AJAX:”Asynchronous JavaScript and XML”

  • 中文意思:異步JavaScript和XML。

  • 指一種創建交互式網頁應用的網頁開發技術。

  • AJAX並非縮寫詞,而是由Jesse James Gaiiett創造的名詞。

  • 不是指一種單一的技術,而是有機地利用了一系列相關的技術:

  • web標準( Standards-Based Presentation )XHTML+CSS的表示,

  • 使用 DOM( Document Object Model )進行動態顯示及交互,

  • 使用 XML 和 XSLT 進行數據交換及相關操作,

  • 使用 XMLHttpRequest 進行異步數據查詢、檢索.

  • 簡單理解爲:JavaScript + XMLHttpRequest + CSS +服務器端 的集合.

 

AJAX優點

 

readyState屬性

readyState屬性指出了XMLHttpRequest對象在發送/接收數據過程中所處的幾個狀態。XMLHttpRequest對象會經歷5種不同的狀態。

  • 0:未初始化。對象已經創建,但還未初始化,即還沒調用open方法;

  • 1:已打開。對象已經創建並初始化,但還未調用send方法;

  • 2:已發送。已經調用send 方法,但該對象正在等待狀態碼和頭的返回;

  • 3:正在接收。已經接收了部分數據,但還不能使用該對象的屬性和方法,因爲狀態和響應頭不完整;

  • 4:已加載。所有數據接收完畢

 

JSON 是什麼?

  • JSON 的全稱是 JavaScript Object Notation,是一種輕量級的數據交換格式。JSON 與 XML 具有相同的特性,例如易於人編寫和閱讀,易於機器生成和解析。但是 JSON 比 XML 數據傳輸的性能要高出很多。JSON 完全獨立與編程語言,使用文本格式保存。

  •  

  • 那麼如何使用 JSON 來作爲 GWT 的數據傳遞格式呢?

  •  第一,引用 HTTP 和 JSON 支持。

  •  第二,在客戶端創建 JSON 數據,提交到服務器

  •  第三,在服務器上重寫數據格式解析的代碼,使之支持 JSON 格式的數據

  •  第四,在服務器上組織 JSON 格式的數據,返回給客戶端。

  •  第五,客戶端解析服務器傳回的 JSON 數據,正確的顯示 引用 HTTP 和 JSON 支持

 

 服務端基本屬性件介紹 

  • (1)ClientID,控件在客戶端的Id,控件在服務端的Id不一定等於客戶端HTML中的Id,比如說在ListView等控件的模板中。因此如果要在客戶端通過JavaScript Dom、JQuery的getElementById、$(“#id”)來操作控件的話最好不要直接寫服務端Id,而是$(‘#<%=txt1.ClientID%>’)。用JQuery事件設置鼠標移到控件上和從控件移開的不同樣式。在用戶控件中就可以看到ClientID和id的不同。UserControl、母版、ListView。推薦永遠用ClientID

  • (2)Visible 屬性, 控件是否可見,如果Visible=False是不會轉到HTML中的,這和在HTML中給元素style.display='none'效果是不一樣的。

  • (3)CssClass 屬性,控件的樣式名,就是HTML中控件的class屬性。也可以單獨修改BackColor、BorderStyle等屬性,但是不建議這麼做,因爲會生成很多的內聯樣式,生成html尺寸大,不便於統一的修改。

  • (4)Attributes,用來設置獲取控件的額外屬性。和Dom中的setAttribute()、getAttribute()是一樣的。Button1.Attributes[“a1”] = “2.jpg”; HTML 事件在服務端看來也是屬性 Button1.Attributes[“onmouseover”] = “alert(‘hello’)”;

 

服務端基本控件1

  • 1、Label控件。Text屬性爲顯示文本。AssociatedControlID屬性用來關聯一個控件,如果爲空的話會展示爲一個<Span>,如果指定爲一個控件的id,則會展示爲一個HTML中的<Label>並且將for屬性設置爲被關聯控件的ClientId。

  • 2、Literal控件也是展示一段文本,但是Literal控件不會渲染任何額外的標籤,就是將Text屬性的值展示出來而已。

  • 3、TextBox控件,文本框控件。TextMode屬性取值SingleLine、MultiLine、Password,分別渲染爲input(type=text)、textarea和input(type=password)。當AutoPostBack屬性爲true的時候,用戶焦點離開TextBox就會造成頁面Post,實現原理就是講ASP.Net原理時的AutoPostBack。TextChanged事件(需要AutoPostBack=true纔會修改後觸發,否則是頁面提交才觸發),文本發生變化的時候事件觸發。(以Post方式提交表單)ASP.Net中要提交表單的時候最好調用__doPostBack方法。

  • 4、RadioButton控件,對應爲input(type=radio),通過GroupName屬性進行分組

  • 5、Button控件。OnClientClick屬性,當用戶點擊按鈕的時候在瀏覽器端執行的代碼,注意OnClientClick是字符串屬性,寫的代碼是JavaScript代碼,運行在瀏覽器端。<asp:Button ID="btnDel" runat="server" onclientclick="return confirm('真的要刪除嗎?')" Text="刪除" />

  • 6、LinkButton,用法和Button差不多,區別就是Button控件渲染爲按鈕,而LinkButton渲染爲超鏈接。不要用LinkButton來實現普通的超鏈接,因爲LinkButton的href爲一段javascript代碼,進行的是表單的Post,無法“在新窗口中打開連接”。和講“行刪除”那個例子中href爲javascript的超鏈接原理一樣。一般用Button就行,只有用戶要求“長成超鏈接好”採用LinkButton,就是一個在瀏覽器中渲染成超鏈接,服務端當成按鈕用的東西。

  • HyperLink:IsPostBack=False,沒有提交表單內容,沒有OnClick事件。

  • 7、ImageButton控件也和Button差不多,只不過是顯示爲圖片,渲染爲input(type=image)

  • 8、Button、LinkButton、ImageButton等控件都有CommandName、CommandArgument兩個屬性和Command事件,可以讓多個按鈕控件共享一個Command事件處理函數,通過讀取事件對象e的CommandName、CommandArgument兩個屬性讀取被點擊按鈕上設置的這兩個參數來執行不同的操作。例子:編輯、刪除多行數據。這種用法在ListView等控件中用的最多。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章