dropdownlist选择值里放了两级目录,如何让根目录不能点,只能选择根目录 怎样来写?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dropdownlist选择值里放了两级目录,如何让根目录不能点,只能选择根目录 怎样来写?相关的知识,希望对你有一定的参考价值。

参考技术A 用数据绑定是不能再手动填dropdownlist的项的。你用的是什么数据源,如果是datatable的话,那么在他的rows里面添加一行,然后再给绑定到dropdownlist的Text那个字段设置成 请选择 就行了追问

什么意思这是,我把dropdownlist写成树形的那种,然后有根目录和子目录, 我想让根目录为只读的,选择的时候只能选择根目录

如何在MVC 5中使用DropdownListFor在多个DropDownList中选择值

我有这个型号:

public class CampoTipoDocumentoViewModel
{
    public int TipoDocumentoId { get; set; }

    public string[] CamposId { get; set; }

    private List<MiddleTier.Models.ICampo> _todosCampos;
    public IEnumerable<SelectListItem> TodosCampos
    {
        get
        {
            foreach (var campo in _todosCampos)
                yield return new SelectListItem { Text = campo.Nombre, Value = campo.Id.ToString() };
        }
    }  

    public void SetFields(List<MiddleTier.Models.ICampo> campos)
    {
        _todosCampos = campos;
    }
}

在控制器中,为CamposId属性分配了必须在视图中选择的元素。

Controller还调用SetFields方法将_todosCampos填充到系统中的整个记录​​列表中。

我们的想法是创建一个带有SELECT的视图,该视图最初选择了一些记录。

这是我的看法:

@Html.DropDownListFor(m => m.CamposId, Model.TodosCampos, new { @class = "form-control", multiple = "multiple", width = "100%" })

事实是HTML SELECT元素是使用列表创建的,但没有选择任何选项。

例如,如果_todosCampos包含:

Text = "One", Value = "1"
Text = "Two", Value = "2"
Text = "Three", Value = "3"
Text = "Four", Value = "4"

和CamposId包含:

Array of "2", "4"

我需要视图创建一个带有这4个选项的SELECT,并且最初选择选项2和4。

我怎样才能做到这一点?

谢谢Jaime

答案

为了将<select>元素与multiple="multiple"属性一起使用,您需要声明List<string>属性:

public List<string> CamposId { get; set; }

然后使用ListBoxFor助手而不是DropDownListFor

@Html.ListBoxFor(m => m.CamposId, Model.TodosCampos, new { @class = "form-control", multiple = "multiple", width = "100%" })

如果要设置默认选择的某些选项值,则将Selected属性设置为SelectListItem

public IEnumerable<SelectListItem> TodosCampos
{
    get
    {
        foreach (var campo in _todosCampos)
        {
            // assumed you have 'campo.IsDefault' which is boolean property 
            yield return new SelectListItem 
            { 
                Text = campo.Nombre, 
                Value = campo.Id.ToString(), 
                Selected = campo.IsDefault // set default selected values
            };
        }
    }
}  

注意:通常ID属性包含整数值,您可以根据数据库中的实际ID数据类型尝试List<int> CamposId

以上是关于dropdownlist选择值里放了两级目录,如何让根目录不能点,只能选择根目录 怎样来写?的主要内容,如果未能解决你的问题,请参考以下文章

我在页面的body里放了一个div,设置了div的宽度,为啥没有效果呢?页面还是充满整个body:

在数据库中的表格里放了图片的地址,要在java程序的界面上面显示出图片,怎么操作么?

从数组中选择一个随机字符串[重复]

拆分容器有三个面板

将29个鸡蛋放入八个篮子里 每个篮子里数量鸡蛋 鸡蛋数量是奇数能做到吗 为什?

如何根据其他DropDownList的选择进行多个DropDownList更改