DropDownList单选与多选下拉框
1.添加界面的DropDownList显示值问题
(1)在方法内添加ViewData的方法:
var ad = new UnitsRepository();
ViewData["datasourceid"] = new SelectList(ad.dsname(), "id", "dsname");
ViewData["showstyleid"] = new SelectList(ad.showstyle(), "id", "name");
从而传值到DropDownList下拉框
(2)在试图中使用DropDownList:
数据元:
@Html.DropDownList("datasourceid", ViewData["datasourceid"] as SelectList, "--请选择--", new { rows = "8", style = "width:224px" })
(3)按确认提交后,可使用POST表单提交方法在后台获得下拉框选取的值
2.编辑界面的DropDownList显示值与取值问题
(1)在方法内添加ViewData的方法:
var rep = new UnitsRepository().GetViewData(confid);
var ad = new UnitsRepository();
ViewData["datasourceid"] = new SelectList(ad.dsname(), "id", "dsname", rep.dsname);
ViewData["showstyleid"] = new SelectList(ad.showstyle(), "id", "name",rep.showstylename);
public Units GetViewData(int config)
{
IList<Units> result1;
WiGetLinqDataContext db = new WiGetLinqDataContext();
var res = (from user in db.ApplicationUnits
where user.id == config
select new
{
dsname = user.ApplicationDatasource == null ? "" : user.ApplicationDatasource.dsname,
showstylename = user.ApplicationUnitsShowStyle == null ? "" : user.ApplicationUnitsShowStyle.name,
}).ToList();
result1 = (from u in res
select new Units
{
dsname = u.dsname,
showstylename = u.showstylename,
}).ToList();
return result1.FirstOrDefault();
}
public IQueryable dsname()
{
WiGetLinqDataContext db = new WiGetLinqDataContext();
var dsname = from m in db.ApplicationDatasource select m;
return dsname;
}
这里需要注意的是,"SelectistListItem"和"ListBox"的继承类"SelectList"可以很好很方便的进行数值的传递,第四个参数就是为DropDownList提供默认显示值,即数据库内提取出来的值
(2)在试图中的DropDownList对应的也有默认值的显示设置:数据元:
@Html.DropDownList("datasourceid", ViewData["datasourceid"] as SelectList,Model.dsname)
因为是强类型试图,所有可以有Model,其中Model.dsname就是后台ViewData获取的SelectValue了。

2.获取多选下拉框的选项值:
@Html.DropDownList("Publishto", ViewData["Publishto"] as SelectList, "--请选择--", new { multiple = "multiple" })
其中的ViewData获取值方式和前面的单选DropDownList下拉框类似。
这里遇到的一个不同的情况是,多选项数据来自数据库表中一个对象的其中一个属性,而不是一个表的某个属性的所有对象。
这里就那该项目为例:
W,M,T分别代表:"Web平台" , "移动平台" , "客户端平台"
而这一个字符串存在一个对象的一个属性中,但是页面中显示效果为:

所以在获取数据时有所不同:
后台定义一个类和方法:
public class Publishto
{
public string Code { get; set; }
public string Name { get; set; } public static List<Publishto> GetPublishtoList()
{
return new List<Publishto>
{
new Publishto { Code = "w", Name = "Web平台" },
new Publishto { Code = "m", Name = "移动平台" },
new Publishto { Code = "t", Name = "客户端平台" }
};
}
}
分别把W,M,T赋不同的字符串,
在方法中用ViewData取值时,语法为:
ViewData["Publishto"] = new SelectList(Publishto.GetPublishtoList(), "Code", "Name");
从而是前台显示的时候为对应的字符串。
3.多选下拉框取值的问题,可以用POST表单获取数据的方式:
string Pub = Request.Form["Publishto"].ToString();
这样,字符串Pub就可以获得类似“W,M"等类型的字符串了,然后存入数据库就行了。
DropDownList单选与多选下拉框的更多相关文章
- js:jquery multiSelect 多选下拉框实例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- pentaho cde 自定义复选下拉框 checkbox select
pentaho 自带的component 虽多,但是当用户需要在一个表格中查看多个组别的数据时,pentaho自带的单选框就不能实现了,所以复选下拉框势在必行,实现效果如下: 实现原理是借用了jqu ...
- Easyui-Combobox多选下拉框
因为工作需要,引入combobox多选下拉框,并且获取选择的值并以","分开. 效果如下: 代码如下: <html> <head> <title> ...
- Extjs4.2 多选下拉框
//多选下拉框 Ext.define('MDM.view.custom.MultiComboBox', { extend: 'Ext.form.ComboBox', alias: 'widget.mu ...
- Bootstrap3级联多选下拉框
<!DOCTYPE html> <html> <head> <title>Bootstrap3级联多选下拉框</title> <met ...
- js怎么能取得多选下拉框选中的多个值?
方法:获取多选下拉框对象数组→循环判断option选项的selected属性(true为选中,false为未选中)→使用value属性取出选中项的值.实例演示如下: 1.HTML结构 1 2 3 4 ...
- js多选下拉框
1.js原生实现 1.1:引用JS文件 /*! jQuery v1.12.4 | (c) jQuery Foundation | jquery.org/license */ !function(a,b ...
- query多选下拉框插件 jquery-multiselect(修改)
其实网上关于该控件的使用教程已经很多了,其中 query多选下拉框插件 jquery-multiselect Jquery多选下拉列表插件jquery multiselect功能介绍及使用 这2个的介 ...
- 多选下拉框带搜索(aps.net)
自己写了一个带搜索功能的多选下拉框,为了要获取值,就没有封装插件,实现思路 1.一个文本框 做搜索 2.一个文本框显示选中文本,一个隐藏控件存值 3.一个div里面绑定CheckBoxList控件(这 ...
随机推荐
- crawler_编码转换_unicode(年)
import java.util.regex.Matcher; import java.util.regex.Pattern; /** * @declare: unicode 帮助类<br> ...
- 【高德地图API】从零开始学高德JS API(二)地图控件与插件——测距、圆形编辑器、鼠标工具、地图类型切换、鹰眼鱼骨
原文:[高德地图API]从零开始学高德JS API(二)地图控件与插件——测距.圆形编辑器.鼠标工具.地图类型切换.鹰眼鱼骨 摘要:无论是控件还是插件,都是在一级API接口的基础上,进行二次开发,封装 ...
- 让Docker功能更强大的10个开源工具
让Docker功能更强大的10个开源工具 更好的管理.Web前端程序.更深入地了解容器应用程序,Docker生态系统正在迅速发展,这还得归功于其充满活力的开源社区. 软件项目的成功常常根据其催生的生态 ...
- Unix/Linux环境C编程新手教程(41) C语言库函数的文件操作具体解释
上一篇博客我们解说了怎样使用Linux提供的文件操作函数,本文主要解说使用C语言提供的文件操作的库函数. 1.函数介绍 fopen(打开文件) 相关函数 open,fclose 表头文件 #in ...
- JS怎样将拖拉事件与点击事件分离?
帖子:http://bbs.csdn.net/topics/390785395?page=1#post-397369340 怎样将拖拉事件跟点击事件分离? 须要做到:拖拉时不触动点击事件 <ht ...
- 转载+自练(莫喷)怎样在cocos2d 2.1.4里面使用动画和Texture Packer
本文实践自 Ray Wenderlich.Tony Dahbura 的文章<How to Use Animations and Sprite Sheets in Cocos2D 2.X>, ...
- 错 'Cannot run program "/home/uv/IDE/adt/sdk/platform-tools/adb": error=2, No such file or directory
为linux平台搭建android开发环境的人,您可能会遇到问题,如下面有: 64位置linux安装64位置eclipse和64位置jdk开场后eclipse错误后 ""Canno ...
- ckplayer
ckplayer 的使用基本功能实现(一) 有个项目里用到视频播放功能,虽然是国产的插件,但我觉得做的还是不错,而且是免费使用,顺便支持下国内的一些项目(O(∩_∩)O~). 一.首先去官网下载 插件 ...
- leetcode第八题--String to Integer (atoi)
Problem: Implement atoi to convert a string to an integer. Hint: Carefully consider all possible inp ...
- 《Visual Studio Magazine》2013年读者选择奖—软件类
<Visual Studio Magazine>会在每年的下半年向读者发出投票邀请,读者将在28个大类,超过500个开发工具的名单中选出他们认为最好的产品,以票数评出各分类的金.银.铜奖. ...