gpt4 book ai didi

c# - 在我的 MVC3 中禁用下拉列表中的项目

转载 作者:行者123 更新时间:2023-11-30 19:10:38 27 4
gpt4 key购买 nike

我有一个 MVC3 应用程序。我想根据条件禁用 下拉列表 中的特定项目。

@Html.DropDownList("ReportName", Model.ReportTypes, new { style = "color:black; float:left; padding:5px;", @id = "ReportType" })
@if (Model.numCount > 500)
{
// disable the item whose value = "RC-Report";
}

最佳答案

填充 SelectListItemExtends 列表,并传递给 ViewBag:

ViewBag.List = new Biz().ListSmall()
.Select(s => new SelectListItemExtends()
{
Text = s.dsc,
Value = s.id,
Enabled = s.is_active
}).ToArray();

在你看来使用:

@Html.DropDownList("id", ViewBag.List as IEnumerable<SelectListItemExtends>, new { })

创建文件 HtmlHelperExtensions.cs:

using System.Collections.Generic;
using System.Web.Routing;

namespace System.Web.Mvc.Html
{
public static class HtmlHelperExtensions
{
public static MvcHtmlString DropDownList(this HtmlHelper htmlHelper, string name, IEnumerable<SelectListItemExtends> selectList, object htmlAttributes)//, Func<object, bool> ItemDisabled)
{
//Creating a select element using TagBuilder class which will create a dropdown.
TagBuilder dropdown = new TagBuilder("select");
//Setting the name and id attribute with name parameter passed to this method.
dropdown.Attributes.Add("name", name);
dropdown.Attributes.Add("id", name);

var options = "";
TagBuilder option;
//Iterated over the IEnumerable list.
foreach (var item in selectList)
{
option = new TagBuilder("option");
option.MergeAttribute("value", item.Value.ToString());

if (item.Enabled == false)
option.MergeAttribute("disabled", "disabled");

if (item.PropExtends != null)
option.MergeAttributes(item.PropExtends);

option.SetInnerText(item.Text);
options += option.ToString(TagRenderMode.Normal) + "\n";
}
//assigned all the options to the dropdown using innerHTML property.
dropdown.InnerHtml = options.ToString();
//Assigning the attributes passed as a htmlAttributes object.
dropdown.MergeAttributes(new RouteValueDictionary(htmlAttributes));
//Returning the entire select or dropdown control in HTMLString format.
return MvcHtmlString.Create(dropdown.ToString(TagRenderMode.Normal));

}
}
public class SelectListItemExtends : SelectListItem
{
public bool Enabled { get; set; }
public IDictionary<string, string> PropExtends { get; set; }
}
}

结果是:

<select name="id" id="id">
<option value="430">Object 1</option>
<option value="5c7" disabled="disabled">Object 2</option>
</select>

注意

胡里奥·斯派德

wessolucoes.com.br

关于c# - 在我的 MVC3 中禁用下拉列表中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16531399/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com