《ASP.Net快速入門》學習筆記2

 

數據綁定語法

1.   ASP.NET 聲明性數據綁定語法使用 <%# %> 表示法。

2.   可以綁定到數據源、頁或其他控件的屬性、集合、表達式以及從方法調用返回的結果。

3.   語法示例

簡單屬性

Customer: <%# custID %>

集合

Orders: <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">

表達式

Contact: <%# ( customer.First Name + " " + customer.LastName ) %>

方法結果

Outstanding Balance: <%# GetBalance(custID) %>

4.   ASP Response.Write DataBind 方法區別

ASP Response.Write 快捷方式語法在處理頁時計算,而 ASP.NET 數據綁定語法僅在調用 DataBind 方法時計算。

5.   DataBind 的級聯

當在父控件上調用 DataBind 時,它級聯到該控件的所有子控件。

例如,DataList1.DataBind() 將因此對 DataList 模板中的每一控件調用 DataBind 方法。在上調用 DataBindPage.DataBind() 或只是 DataBind()會導致計算頁上的所有數據綁定表達式

6.  DataBinder.Eval

A.計算後期綁定的數據綁定表達式並且可選擇將結果格式化爲字符串。

CDataBinder.Eval 會對標準數據綁定語法帶來很明顯的性能損失,因爲它使用後期綁定反射,注意這一點很重要。使用 DataBinder.Eval 時需謹慎,尤其是在不需要字符串格式化時。

7數據綁定表達式必須計算爲 String 類型的值

自定義控件類的代碼

using System;

using System.Web;

using System.Web.UI;

 

 

namespace SimpleControlSamples {

 

 

    public class Simple : Control {

 

 

       protected override void Render(HtmlTextWriter output) {

           output.Write("<H2>歡迎使用控件開發!</H2>");

       }

    }   

}

aspx頁引用該自定義控件的代碼

<%@ Register TagPrefix="SimpleControlSamples" Namespace="SimpleControlSamples" Assembly="SimpleControlSamples" %>

<SimpleControlSamples:Simple id="MyControl" runat=server/>

 

 

屬性類似具有訪問器方法的聰明字段。應該從控件公開屬性而不是公開公共字段,因爲屬性允許數據隱藏、可以版本化並受可視化設計器的支持。屬性具有設置和檢索屬性的 get/set 訪問器方法,並允許在需要時執行附加的程序邏輯。

 

 

如果 A 類具有一個類型爲 B 類的屬性,則 B 的屬性(如果有)稱爲 A 的子屬性。下面的示例定義自定義控件 SimpleSubProperty,該控件具有 Format 類型的屬性。Format 是具有兩個基元屬性的類——Color Size,這兩個屬性反過來成爲 SimpleSubProperty 的子屬性。

 

 

注意 ASP.NET 具有設置子屬性的特殊語法。下面的代碼示例顯示如何以聲明方式設置 SimpleSubProperty 上的 Format.Color Format.Size 子屬性。“-”語法指示子屬性。

<SimpleControlSamples:SimpleSubProperty Message="Hello There" Format-Color="red" Format-Size="3" runat=server/>

每個控件都具有從 System.Web.UI.Control 繼承的 Controls 屬性. 這是表示控件的子控件(如果有)的集合屬性

 ParseChildrenAttribute  ParseChildrenAttribute(ChildrenAsProperties = false)ASP.NET  Controls  LiteralControl
:

             我的消息在控件標記內!!!!

          </SimpleControlSamples:SimpleInnerContent>

            <input type=”text” runat = server>          </SimpleControlSamples:SimpleInnerContent>

以上錯誤,因爲<input type=”text” runat = server>是一個控件,標記之間只能添加文本,要添加控件,必須設置屬性ParseChildrenAttribute=true

 

 

 

 

在分析 ASP.NET 頁時,樣式信息被填充到 System.Web.UI.HtmlControls.HtmlControl 類上的 Style 屬性(CssStyleCollection 類型)中。該屬性本質上是一個詞典,它將控件的樣式公開爲每個樣式屬性鍵值的字符串索引集合。例如,可以使用下面的代碼在 HtmlInputText 服務器控件上設置並隨後檢索 width 樣式屬性。

<script language="JavaScript" type="text/javascript"> function doClick(index, numTabs, id) { document.all("tab" + id, index).className = "tab"; for (var i=1; i &lt; numTabs; i++) { document.all("tab" + id, (index + i) % numTabs).className = "backtab"; } document.all("code" + id, index).style.display = ""; for (var j=1; j &lt; numTabs; j++) { document.all("code" + id, (index + j) % numTabs).style.display = "none"; } } </script>

 

 

<script language="C#" runat="server" >

 

 

    void Page_Load(Object sender, EventArgs E) {

        MyText.Style["width"] = "90px";

        Response.Write(MyText.Style["width"]);

    }

 

 

</script>

 

 

<input type="text" id="MyText" runat="server"/>

 

 

<script language="VB" runat="server" >

 

 

    Sub Page_Load(Sender As Object, E As EventArgs)

        MyText.Style("width") = "90px"

        Response.Write(MyText.Style("width"))

    End Sub

 

 

</script>

 

 

<input type="text" id="MyText" runat="server"/>

 

 

<script language="JScript" runat="server" >

 

 

    function Page_Load(sender : Object, E : EventArgs) : void {

        MyText.Style("width") = "90px";

        Response.Write(MyText.Style("width"));

    }

 

 

</script>

 

 

<input type="text" id="MyText" runat="server"/>

 

 

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