Расширение HtmlHelper для Kendo DropDownListC#

Место общения программистов C#
Ответить
Anonymous
 Расширение HtmlHelper для Kendo DropDownList

Сообщение Anonymous »

Я написал метод расширения htmlhelper для текстовых полей и раскрывающегося списка в проектах mvc и C#, и в настоящее время я использую пользовательский интерфейс Kendo и элементы управления, предоставляемые Kendo для раскрывающегося списка и текстового поля.

Я пробовал использовать тот же подход, что и в MVC

public static MvcHtmlString Custom_DropDownList(this HtmlHelper helper, string name, IEnumerable list)
{
return Custom_DropDownList(helper, name, list);
}


но я не могу использовать указанный выше вспомогательный метод с раскрывающимся списком кендо. Я знаю, это неправильно, и я боролся с этим.

Я заполняю раскрывающиеся значения из базы данных и в дополнение к текущим значениям в списке,
Я хотел бы
  • добавить одну пустую строку вверху списка
  • или (ВСЕ) параметр вверху списка (когда имеется более одного значения),
  • (ВСЕ) не будет отображаться, если раскрывающийся список имеет только одно значение.
В случае, если кто-то реализовал вспомогательные методы раскрывающегося списка в кендо, ему будет предложено поделиться идеей или предложить мне способ обойти это.

РЕДАКТИРОВАТЬ

используя собственный htmlhelper для обычный выпадающий список, нам так нравится

public static MvcHtmlString StateDropDownList(this HtmlHelper html)
{
return html.TextBox("foo");
}


и затем мы можем использовать этот htmlhelper в коде.

Как добиться того же кода для Kendo().DropDownList(), поскольку я не видел ни одного примера, делающего это, и я не знаю, как раскрывающийся список Kendo анализирует HTML внутри. Я пытался сделать что-то вроде ниже, но не смог найти решение

public static MvcHtmlString Custom_DropdownList(this HtmlHelper helper, string name, IEnumerable list, string option, object htmlAttributes)
{
var divTag = new TagBuilder("div");
divTag.AddCssClass("k-list-container k-popup k-group k-reset");
divTag.Attributes.Add("id", "ddlMemType-list");
divTag.Attributes.Add("data-role", "popup");
divTag.Attributes.Add("style", "position: absolute; height: auto; display: none;");

TagBuilder ulTag = new TagBuilder("ul");

ulTag.Attributes.Add("id", "ddlMemType_listbox");
ulTag.MergeAttribute("unselectable", "on");
ulTag.AddCssClass("k-list k-reset");
ulTag.MergeAttribute("tabindex", "-1");
ulTag.MergeAttribute("role", "listbox");
ulTag.MergeAttribute("aria-hidden", "false");
ulTag.MergeAttribute("aria-live", "off");
ulTag.MergeAttribute("style","overflow: auto;");
ulTag.InnerHtml += Environment.NewLine;

foreach (var item in list)
{
var liTag = new TagBuilder("li");
liTag.MergeAttribute("tabindex", "-1");
liTag.MergeAttribute("role", "option");
liTag.MergeAttribute("unselectable", "on");
liTag.AddCssClass("k-item k-state-selected k-state-focused");
liTag.Attributes.Add("id", "ddlMemType_option_selected");
liTag.MergeAttribute("aria-selected", "true");

ulTag.InnerHtml += string.Format(" {0}{1}{2}", liTag.ToString(), item.Text, Environment.NewLine);
}
divTag.InnerHtml += string.Format("{0}{1}", ulTag.ToString(), Environment.NewLine);
return MvcHtmlString.Create(divTag.ToString(TagRenderMode.Normal));
}


Подробнее здесь: https://stackoverflow.com/questions/211 ... opdownlist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»