当前位置: 首页 > 编程语言 > C#

在MVC中,可以在@Html.DropDownListFor中改变每个列表项的字体(创建一个类似于MSoffice的字体下拉列表)Share

时间:2023-04-10 23:01:21 C#

在MVC中,可以在@Html中改变每个列表项。DropDownListFor字体(创建类似于MSoffice的字体下拉列表在MVC4中,我有如下代码,@for(inti=0;imodel.dropDownControl[i].Font,fonts,new{style="width:100px;font-family:"+Model.dropDownControl[i].Font+"",id="ddlFontDropDownList"})}在这里,我试图创建一个类似于我们在MSOffice中用于字体选择的下拉列表,在上面的代码中,对于完整列表,下拉字体样式始终相同,这里选择列表包含所有availablefontcontrollers一个包含以下代码的列表:名称});}ViewBag.vFontlIst=liFonts;我希望此处的下拉菜单表现得像MSOffice的字体下拉菜单。您可以使用Javascript执行此操作。jquery脚本可以迭代select的option元素,将每个元素的值作为font-family$("#ddlFontDropDownListoption").each(function(){$(this).css("font-family":$(这).val());});编辑:我错了,你不能改变选项标签的字体。您需要将select语句替换为使用ol/li的javascript小部件。这是一个有效的HTML/Javascript示例。http://jsfiddle.net/6jnLD/(基于这篇文章的答案)你只需要在视图中输出ol列表。那部分应该很容易。EDIT2这到底是什么,这里也是查看代码。//模型公共列表字体{get;放;}//控制器列表liFonts=newList();foreach(System.Drawing.FontFamily.Families中的FontFamily字体){liFonts.Add(font.Name);}然后是视图//ViewChooseLanguage@foreach(System.Drawing.FontFamilyfontinfonts){@font.Name}谢谢大家,在做了一些解决方法之后,现在能够找到一种方法在mvc中执行此操作(浏览器-Chrome),我编写了一个扩展@Html.DropDownListFor的自定义html帮助程序,并且我在HTML中进行了一些自定义以用于呈现、查看、//对自定义控件类的引用@usingWEB_PDD_MVC.CustomHelpers@{Listfonts=(List)ViewBag.v字体列表;foreach(SelectListItemiteminfonts){if(item.Text==Model.Font){item.Selected=true;}else{item.Selected=false;}}}@Html.ExtendedDropDownListFor(model=>model.Font,fonts,null,new{style="width:100px;",id="ddlFontDropDownList"})控制器,列表liFonts=newList();liFonts.Add(newSelectListItem{Text="nimbus-sans-condensed",Value="nimbus-sans-condensed"});//目前只选择10种字体。foreach(System.Drawing.FontFamily.Families.Take(10)){liFonts.Add(newSelectListItem{Text=font.Name,Value=font.Name});中的FontFamily字体}ViewBag.vFontlIst=liFonts;为customdropdown类新建一个文件夹CustomHelpers,在里面添加一个新的类文件CustomDropDownList,在里面添加下面的方法,剩下的由他们来完成,以上是C#学习教程:在MVC中,你可以改变每一个的字体@Html.DropDownListFor中的listitem(所有内容分享通过创建类似MSoffice的字体下拉列表,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注—publicstaticMvcHtmlStringExtendedDropDownListFor(这个HtmlHelperhtmlHelper,表达式>表达式,IEnumerableselectList,字符串optionLabel,对象htmlAttributes){);}privatestaticMvcHtmlStringSelectInternal(thisHtmlHelperhtmlHelper,stringoptionLabel,stringname,IEnumerableselectList,boolallowMultiple,IDictionaryhtmlAttributes){stringfullName=htmlHelper.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(名称);如果(String.IsNullOrEmpty(fullName))thrownewArgumentException("Noname");if(selectList==null)thrownewArgumentException("Noselectlist");对象默认值=null;//如果我们还没有使用ViewData获取整个项目列表,那么我们需要//在使用参数提供的值之前使用ViewData提供的值。如果(defaultValue==null)defaultValue=htmlHelper.ViewData.Eval(fullName);如果(默认值!=null){IEnumerabledefaultValues=(allowMultiple)?defaultValueasIEnumerable:new[]{defaultValue};IEnumerable值=从defaultValues中的对象值选择Convert.ToString(value,CultureInfo.CurrentCulture);HashSetselectedValues=newHashSet(values,StringComparer.OrdinalIgnoreCase);列表newSelectList=newList();foreach(selectList中的SelectListItem项目){item.Selected=(item.Value!=null)?selectedValues.Contains(item.Value):selectedValues.Contains(item.Text);newSelectList.Add(项目);}selectList=newSelectList;}//将每个ListItem转换为一个标签StringBuilderlistItemBuilder=newStringBuilder();//使optionLabel成为第一个被渲染的项目。如果(optionLabel!=null)listItemBuilder.Append(ListItemToOption(newSelectListItem(){Text=optionLabel,Value=String.Empty,Selected=false}));foreach(selectList中的SelectListItem项目){listItemBuilder.Append(ListItemToOption(item));}TagBuildertagBuilder=newTagBuilder("select"){InnerHtml=listItemBuilder.ToString()};tagBuilder.MergeAttributes(htmlAttributes);tagBuilder.MergeAttribute("name",fullName,true/*replaceExisting*/);tagBuilder.GenerateId(全名);if(allowMultiple)tagBuilder.MergeAttribute("多个","多个");//如果命名字段有任何错误,我们添加css属性。模型状态模型状态;if(htmlHelper.ViewData.ModelState.TryGetValue(fullName,out模式lState)){if(modelState.Errors.Count>0){tagBuilder.AddCssClass(HtmlHelper.ValidationInputCssClassName);}}tagBuilder.MergeAttributes(htmlHelper.GetUnobtrusiveValidationAttributes(名称));返回MvcHtmlString.Create(tagBuilder.ToString(TagRenderMode.Normal));}internalstaticstringListItemToOption(SelectListItemitem){TagBuilderbuilder=newTagBuilder("option"){InnerHtml=HttpUtility.HtmlEncode(item.Text)};if(item.Value!=null){builder.Attributes["value"]=item.Value;//builder.Attributes["style"]="background-color:Gray;";}if(item.Selected){builder.Attributes["selected"]="selected";}//builder.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(item.htmlAttributes));TagBuilderOptGroup=newTagBuilder("optgroup"){InnerHtml=builder.ToString(TagRenderMode.Normal)};OptGroup.Attributes["style"]="display:none;font-family:"+item.Value+";";返回OptGroup.ToString(TagRenderMode.Normal);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如有转载请注明出处: