Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc @Html.Dropdownlist上不可选择的占位符_Asp.net Mvc_Jquery Chosen - Fatal编程技术网

Asp.net mvc @Html.Dropdownlist上不可选择的占位符

Asp.net mvc @Html.Dropdownlist上不可选择的占位符,asp.net-mvc,jquery-chosen,Asp.net Mvc,Jquery Chosen,如何在@Html.Dropdownlist上放置不可选择的占位符。 我在下拉列表中实现了所选jquery。 我的代码如下所示: @Html.DropDownList("Id", new SelectList(new Ahib.Membership.UserFacade().GetAllUsers(), "Id", "Username"), "-select a system owner-", new { @class="chosen1-select" }) 目前,我的dropdownlist有

如何在@Html.Dropdownlist上放置不可选择的占位符。 我在下拉列表中实现了所选jquery。 我的代码如下所示:

@Html.DropDownList("Id", new SelectList(new Ahib.Membership.UserFacade().GetAllUsers(), "Id", "Username"), "-select a system owner-", new { @class="chosen1-select" })

目前,我的dropdownlist有一个占位符,但“-选择一个系统所有者”-成为我不想要的可选值。如何解决此问题?

您可以将列表转换为selectitem列表,并从控制器本身应用禁用属性

像这样

class user
    {
        public int Id { get; set; }
        public string Username { get; set; }
    }
@Html.DropDownList("test", ViewBag.listItems as IEnumerable<SelectListItem>);
假设你的模型是这样的

class user
    {
        public int Id { get; set; }
        public string Username { get; set; }
    }
@Html.DropDownList("test", ViewBag.listItems as IEnumerable<SelectListItem>);
将您的列表转换为如下所示的
列表
,注意这里我禁用了“选择系统所有者”条目

 public ActionResult Index()
        {
            List<user> users = new List<user>();
            users.Add(new user { Id = 1, Username = "test1" });
            users.Add(new user { Id = 2, Username = "test2" });

            List<SelectListItem> list = new List<SelectListItem>();
            list.Add(new SelectListItem { Text = "-select a system owner-", Value = "0", Disabled = true });
            foreach (var item in users)
            {
                list.Add(new SelectListItem
                {
                    Text = item.Username,
                    Value = item.Id.ToString()
                });
            }

            ViewBag.listItems = list;
            return View();
        }
public ActionResult Index()
{
列表用户=新列表();
添加(新用户{Id=1,Username=“test1”});
Add(新用户{Id=2,Username=“test2”});
列表=新列表();
添加(新建SelectListItem{Text=“-选择系统所有者-”,Value=“0”,Disabled=true});
foreach(用户中的var项)
{
列表。添加(新建SelectListItem)
{
Text=item.Username,
Value=item.Id.ToString()
});
}
ViewBag.listItems=列表;
返回视图();
}
从长远来看,像这样使用它

class user
    {
        public int Id { get; set; }
        public string Username { get; set; }
    }
@Html.DropDownList("test", ViewBag.listItems as IEnumerable<SelectListItem>);
@Html.DropDownList(“test”,ViewBag.listItems为IEnumerable);
结果:


我尝试了你建议的解决方案。“-选择系统所有者”-将显示,但不会作为占位符。它显示为一个不可选择的选项。当我打开表单时,下拉列表的默认值仍然是“test1”,而不是“-选择系统所有者”-作为占位符。@matrixmy002将“选择系统所有者”更改为
list.Add(新建SelectListItem{Text=“-选择系统所有者-”,value=“0”,Disabled=true,Selected=true})我尝试了你建议的解决方案。它适用于普通的下拉列表,但由于我使用的是Selected jquery,如果我键入/搜索“select”,则“select a system owner”选项将显示为搜索结果,而它应该是“no result match”。@matrixmy002这是一个完全不同的解决方案,然后您提供了,但您仍然可以通过稍微更改jquery来完成此操作,尝试探索,你会得到你想要的结果。,