一种对ASP.NET下拉列表存取的比较鲁棒和直接的办法

类别:Asp 点击:0 评论:0 推荐:
对于很多ASP.NET的初学者来说,对于下拉列表框的处理总是感觉有种别扭的感觉,特别是对于有空值和处理数字的情况,多数初学者稳健起见选择使用SelectedIndex,虽然不会造成错误,但是给处理增加了麻烦,在此介绍一些本人使用DropDownList的一些心得:

1、对于数字,比如月份,显示如01、02、……,有两种方法,一种直接使用DropDownList的Items.FindText()方法,但是要注意判断的值如果找不到就不能引用该Item对象,例如:

从数据库读出string strMonth;
下拉列表框:protected System.Web.UI.WebControls.DropDownList DropMonth;

然后这样写就行了if(DropMonth.Items.FindByText( strMonth ) != null ) { DropMonth.Items.FindByText( strMonth ).Selected = true } else { //给出错误信息,或者对于将0元素置为空元素,那么就可以DropMonth.SelectedIndex = 0; }

2、设置Value来定义不同的元素,在Text和Value之间建立映射。
比方说学生的三个级别,空,本科生,硕士生,博士生分别定义成  (Text, Value) ””, 0 ; ”本科生”,1 ; “硕士生”, 2; “博士生”,3。这样数据库里就可以保存Value了,读出来之后只要像上述一样,只是FindByText改成FindByValue。

3、两种方法在保存数据库时方式大概相同:Month = DropMonth.SelectedItem.Text.Trim();//之前要保证SelectedIndex != 0;
Student = DropStudent.SelectedItem.Value;
要注意这里的Value并不是int型,所以如果数据库里是int型需要Convert.ToInt32(Student)
读出来也要这样dr[“Student“].ToString(), //DataRow dr

总结:总体来说上面的方法是最为简洁快速的方法,特别是数据库字段比较多的时候,这个可以大大减轻编码人员的复杂度和负担,对于初学者尤为重要。

本文地址:http://com.8s8s.com/it/it8270.htm