.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"; //使用绑定方法 ListBox.DataBind();
4.小技巧
不显式指定控件,仅知道控件的类型,即使不知道控件的ID,也可以获取该控件所选择的值。方法如下:(在按钮事件中)
RadioButtonList rdl= sender as RadioButtonList; if(rdl!=null) { Response.Write(rdl.Items[rdl.SelectedIndex].Value); }