具有edittype select和multiple true的Lib.Web.Mvc



阅读了这篇关于在Lib.Web.Mvc上自定义实现DataEvents的文章之后。我需要创建一个ListBox类型的列,类似

[Required]
[Display(Name = "Actions")]
[JqGridColumnEditable(true, "Actions", "Home", EditType = JqGridColumnEditTypes.Select)]
[JqGridColumnEditOptions.Multiple=true]
public string Actions { get; set; }

有人能帮我或给我推荐信吗。我真的不知道该怎么做。

您可以通过HtmlAttributes集合对JqGridColumnEditableAttribute进行子类化并添加Multiple属性:

public class JqGridColumnMultipleEditableAttribute : JqGridColumnEditableAttribute
{
    public bool Multiple { get; set; }
    protected override IDictionary<string, object> HtmlAttributes
    {
        get
        {
            if (Multiple)
                return new Dictionary<string, object>() { { "multiple", "multiple" } };
            else
                return null;
        }
    }
    public JqGridColumnMultipleEditableAttribute(bool editable)
        : base(editable)
    {
        Multiple = false;
    }
    public JqGridColumnMultipleEditableAttribute(bool editable, string dataUrlRouteName)
        : base(editable, dataUrlRouteName)
    {
        Multiple = false;
    }
    public JqGridColumnMultipleEditableAttribute(bool editable, string dataUrlAction, string dataUrlController) :
        this(editable, dataUrlAction, dataUrlController, null)
    { }
    public JqGridColumnMultipleEditableAttribute(bool editable, string dataUrlAction, string dataUrlController, string dataUrlAreaName)
        : base(editable, dataUrlAction, dataUrlController, dataUrlAreaName)
    {
        Multiple = false;
    }
}

您可以像这样使用以这种方式创建的属性:

[Required]    
[Display(Name = "Actions")]    
[JqGridColumnMultipleEditable(true, "Actions", "Home", EditType = JqGridColumnEditTypes.Select, Multiple=true)]      
public string Actions { get; set; }

这将导致jqGrid渲染ListBox(您可能需要进行一些样式设置以使其看起来不错)。

最新更新