Lotus Pond

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

今天做一个查询功能时遇到了一个问题,是这样的:

我要用DropDownList来绑定数据库里查询出来的类型数据,如下图:想在这两个类型之上再增加一个“全部留言”的项,因为查询条件应该有查询全部类型的留言。尝试了三种方式,最后终于实现了,不多说了,“上菜啦……”

 

 

一、直接绑定数据:

1 TList<MessageType> messageTypeSource = ClassMessage.GetMessageTypeByModuleId(moduleId); //获取所有类型的方法
2 DropDownList1.DataSource = messageTypeSource; //绑定数据源
3 DropDownList1.DataTextField = "FmessageTypeName"//文本内容字段
4 DropDownList1.DataValueField = "FmessageTypeId"//值字段
5 DropDownList1.DataBind();

 

编译后页面代码:

1     <select name="dropdownlist1" id="dropdownlist1">
2         <option value="1">网站建议</option>
3         <option value="2">教学相关</option>
4     </select>

 

缺少了,不选择类型时的“全部留言”这个选项。这不符合我的要求,于是Search了一下网络资源,发现有用DropDownList1.Items.Add(new ListItem("全部留言","0")),这种方法的,于是修改代码如下:

 

二、用 DropDownList1.Items.Add() 方法动态添加一项:

1 TList<MessageType> messageTypeSource = ClassMessage.GetMessageTypeByModuleId(moduleId); //获取所有类型的方法
2 DropDownList1.DataSource = messageTypeSource; //绑定数据源
3 DropDownList1.DataTextField = "FmessageTypeName"//文本内容字段
4 DropDownList1.DataValueField = "FmessageTypeId"//值字段
5 DropDownList1.DataBind();
6 DropDownList1.Items.Add(new ListItem("全部留言","0")); //动态添加新项

 

编译后页面代码:

1     <select name="dropdownlist1" id="dropdownlist1">
2         <option value="1">网站建议</option>
3         <option value="2">教学相关</option>
4         <option value="0">全部留言</option>
5     </select>

 

“全部留言”被放置到了最后一项,这也不是我想要的效果,于是再次Web Search后,找到了解决办法,请看下面的代码:

 

三、用 DropDownList1.Items.Insert() 方法动态插入指定序号的新项

1 TList<MessageType> messageTypeSource = ClassMessage.GetMessageTypeByModuleId(moduleId); //获取所有类型的方法
2 DropDownList1.DataSource = messageTypeSource; //绑定数据源
3 DropDownList1.DataTextField = "FmessageTypeName"//文本内容字段
4 DropDownList1.DataValueField = "FmessageTypeId"//值字段
5 DropDownList1.DataBind();
6 //DropDownList1.Items.Add(new ListItem("全部留言","0")); //动态添加新项
7 DropDownList1.Items.Insert(0,new ListItem("全部留言","0")); //动态插入指定序号的新项

 

编译后页面代码:

1     <select name="dropdownlist1" id="dropdownlist1">
2         <option value="0">全部留言</option>
3         <option value="1">网站建议</option>
4         <option value="2">教学相关</option>
5     </select>

 

这样就实现了想要的样式,最终还是DropDownList1.Items.Insert(0,new ListItem("全部留言","0"));方法解决了问题。最终效果如下图:

 

 
 
posted on 2010-01-21 13:21  Lotus Pond  阅读(2560)  评论(3编辑  收藏  举报