Lib.Web.Mvc с выбором типа редактирования и несколькими значениями true
После прочтения этого поста пользовательская реализация DataEvents на Lib.Web.Mvc. Мне нужно создать столбец типа ListBox, что-то вроде
[Required]
[Display(Name = "Actions")]
[JqGridColumnEditable(true, "Actions", "Home", EditType = JqGridColumnEditTypes.Select)]
[JqGridColumnEditOptions.Multiple=true]
public string Actions { get; set; }
Может кто-нибудь помочь мне или дать мне ссылку. Я действительно не знаю, как это сделать.
1 ответ
Решение
Вы можете подкласс JqGridColumnEditableAttribute
и добавить Multiple
собственность через HtmlAttributes
коллекция:
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 (вам может понадобиться сделать некоторые стили, чтобы он выглядел хорошо).