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

王朝asp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

对于很多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

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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航