.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);}