Telerik MVC Combobox в сетке на основе значений строк? - PullRequest
2 голосов
/ 08 сентября 2011

Мне нужна сетка Telerik MVC с комбинированным списком (в режиме редактирования), который заполняется на основе критериев в каждой строке.Поэтому, когда я нажимаю «Изменить» в одной строке, в результирующем комбинированном списке будут элементы, которые будут отличаться от комбинированного списка транслятора в других строках.Я подумал, что эта строка должна быть загружена по требованию, но я не могу понять, как создать комбинированный список в сетке без шаблона редактора.Похоже, я не могу передать параметры в шаблон редактора.

Вот пример использования этого: представьте, у меня есть список языков с переводчиками в сетке.При редактировании каждой строки будет отображаться поле со списком переводчиков только с переводчиками для этого конкретного языка.Таким образом, у французского языка будет выпадающий список с именами, такими как Пьер, Франсуа и Жак, а у испанского будут такие имена, как Хосе, Марио и, возможно, Пьер, потому что он говорит на французском и испанском языках.

Любые идеи о том, как достичьэто с Telerik MVC Grid и Combobox?

Заранее спасибо, Стив

ОБНОВЛЕНИЕ: Атанас, Есть ли шанс, что вы можете привести рабочий пример?Я получаю ошибки.Вот мой javascript, основанный на вашем коде:

function TaskGrid_OnEdit(e) 
{
    var combobox = $(e.row).find("#ComboBoxId").data("tComboBox");
    //var values = getValuesForDataItem(e.dataItem); // get the values for the current data item      

    var values =
        [
            { Text:"Product 1", Value:"1" },
            { Text:"Product 2", Value:"2" },
            { Text:"Product 3", Value:"3" },
        ];
    combobox.dataBind(values); // fill the combobox
}

Вот шаблон редактора, я здесь ни к чему не привязываю:

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<Model.Data.tblJobTask>" %>

<%: Html.Telerik().DropDownListFor(s => s.SupplierID).Name("ComboBoxId") %>

Кстати, модель вваш шаблон редактора не сопоставляется ни с одной из моделей, которые у вас есть в решении.Должна ли модель там быть сопоставлена ​​с данными, которыми вы заполняете комбо или модель списка, который заполняет сетку?

Стив

1 Ответ

1 голос
/ 08 сентября 2011

Для встраивания комбинированного списка в сетку вы можете проверить этот проект библиотеки кодов (просто замените выпадающий список комбинированным списком). Вам все еще нужно использовать шаблон редактора. Чтобы заполнить комбинированный список значениями, специфичными для текущей строки, вы можете использовать событие OnEdit сетки. Там вы можете настроить комбинированный список с помощью его метода dataBind (связать его на стороне клиента) или вызвать его метод reload , чтобы заполнить его с помощью ajax. Вот некоторый код:

function Grid_onEdit(e) {
   var combobox = $(e.row).find("#ComboBoxId").data("tComboBox");
   var values = getValuesForDataItem(e.dataItem); // get the values for the current data item
   combobox.dataBind(values); // fill the combobox
}
...