问题描述
是这样的,我从数据库获取了List类型的数据,通过model传到前端,List中的每一条数据,都包含了string类型的type,Name,link三个成员,type用需要用Dropdownlist绑定,其他的Name和link就直接textbox显示,但type的Dropdownlist的下拉选项是另外一个List<string>类型的,我试过将下拉选项直接转为List<SelectListItem>类型通过ViewData传到前台,但不知怎么写前台代码。这是我的做的一个测试的代码截图,我希望做到的效果:但实际的效果:入门小白,求帮助。。。
解决方案
解决方案二:
人工顶,楼主也百度过,但百度出来的结果基本都是讲怎么绑定的,我希望的是绑定后的默认显示项能和我从数据库读出来的数据项相匹配。
解决方案三:
你应该将构造SelectListItem的过程移到循环里去做,在new的时候判断value是百度还是新浪对应的值,是的话就将对应的SelectListItem赋值Selected为true
解决方案四:
实在搞不定就用脚本吧,这些控件的运用不用钻太深,如果搞得这么复杂,那微软这个东西又背离了初衷
解决方案五:
publicstaticclassSelectListExtensions{publicstaticvoidAddSelectPlease(thisList<SelectListItem>list){list.Insert(0,newSelectListItem{Text="--请选择--",Value=string.Empty});}}publicstaticclassSelectListHelper{publicstaticIEnumerable<SelectListItem>Countries(int?selectValue,booladdSelectPlease=true){List<SelectListItem>list=newList<SelectListItem>();if(addSelectPlease)list.AddSelectPlease();CountrySearchParamsparms=newCountrySearchParams();parms.Published=true;vardata=IocResolver.GetService<ICountryService>().GetCountries(parms).OrderBy(x=>x.DisplayOrder);foreach(varitemindata){SelectListItemtemp=newSelectListItem();temp.Text=item.NameCn;temp.Value=item.Id.ToString();if(selectValue.HasValue&&selectValue.Value==item.Id)temp.Selected=true;list.Add(temp);}returnlist;}@Html.DropDownListFor(x=>x.CountryId,SelectListHelper.Countries(Model!=null?(int?)Model.CountryId:null),new{@class="chosen-select"})
解决方案六:
看看: