【ASP.NET開發】菜鳥時期的.net筆記[about data binding]

來源:互聯網
上載者:User

.net 筆記摘自《ASP.NET 2.0 第一步》,感謝原作者的指導。

這一篇博文裡的筆記帶有不少我個人的理解,不懂問我哈,一起探討。共勉。

一、有關字串的一些工具方法1.string.Format()

把每個格式項替換成相應的文本。

eg: string.Format("{0}+{1}={2}","4","6","10"),得出的字串就是"4+6=10"。{0}、{1}和{2}就是格式項了,最終會由後面的文本替換。{}裡面的花樣有很多。

 

2.IndexOf()和LastIndexOf()

用於尋找字串中指定字元或者字串首次(或最後一次)出現的位置,返回索引值,如果未出現則返回-1.

eg:

  str1.IndexOf("字");//尋找"字"在str1中的索引值(位置)

      str1.IndexOf("字串");//尋找"字串"的第一個字元在str1中的索引值(位置)

      str1.IndexOf("字串",3,2);//從str1的第4個字元起,尋找兩個字元,尋找"字串"的第一個字元在str1中的索引值(位置)

 

3.SubString(參數1,參數2)

截取字串的一部分,參數1為左起始位元,參數2為截取幾位。

eg: "Hello World".Substring(0,5)就是"Hello"

 

4.Split()

根據一個字元把字串分成幾個字串並以字串數組返回。

eg:"a,b,c".Split(',')就是{"a","b","c"}。

Split()不支援根據一個字串來把字串劃分成幾塊,如果希望把"a<br>b<br>c"分割成{"a","b","c"}的話可以使用一中變通的辦法,先把<br>替換成某一個特殊的字元然後再使用Split()分割:

eg:"a<br>b<br>c".Replace("<br>","&").Split('&')

 

二、資料繫結1.綁定運算式

在ASP.NET中,<%# %> 是一個綁定運算式,而<%= %>則是一種內聯(inline),在頁面中資料輸出方式類似於Response.Write(),下面給出例子:(我自己親身試過)

HTML code:

<div>    <%# str + "1" %>    <%= str + "2" %></div>

C# code:

protected string str = "編程快樂";protected void Page_Load(object sender,EventArgs e){}

顯示結果為: 編程快樂2

原因:資料繫結包括兩個過程:

(1)為控制項指定綁定運算式,多值綁定時還要設定資料來源

(2)對控制項進行資料繫結,一般用DataBind()方法

在這裡<%# str + "1" %>僅僅是一個資料繫結運算式,它指定了要繫結資料,卻還未執行綁定操作。

所以要使這句話真正起到作用,我們還需要在代碼中編寫綁定語句:

C# code:

protected void Page_Load(object sender,EventArgs e){    Page.DataBind();}

這個方法會調用頁面上所有控制項及其子控制項的DataBind方法。

 

2.綁定特殊地區的資料:<%$ XXX %>

樣本:<asp: TextBox ID="TextBox1" runat="server" Text="<%$ AppSettings:Text %>"></asp:TextBox>

這裡的AppSettings就是Web.Config檔案中的AppSettings節點。除了AppSettings,還可以指定ConnectionStrings和Resources,<%$ AppSettings:Text %>對應的Web.Config節點是:<appSettings><add key="Test" value="編程快樂" /></appSettings>

這裡不需要用DataBind()方法。

 

3.ListBox控制項的資料繫結

AppendDataBoundItems屬性指示繫結資料是否覆蓋靜態項,簡單說,若此項為真,則代碼中綁定的內容會添加到手動添加的項目的後面,否則就會覆蓋它。

SelectionMode="Multiple"表示選擇的類型為複選。

C# code:

//為控制項指定資料來源ListBox.DataSource = DataSource;//為控制項的文本域指定資料來源ListBox.DataTextField="key";//為控制項的範圍指定資料來源ListBox.DataValueField="classID";//使用Binder 方法ListBox.DataBind();

 

4.小技巧

不顯式指定控制項,僅知道控制項的類型,即使不知道控制項的ID,也可以擷取該控制項所選擇的值。方法如下:(在按鈕事件中)

RadioButtonList rdl= sender as RadioButtonList;if(rdl!=null){    Response.Write(rdl.Items[rdl.SelectedIndex].Value);}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.