Отправка пользовательских значений при сохранении и обновлении с помощью Telerik Grid - PullRequest
0 голосов
/ 04 декабря 2010

В моем приложении asp.net mvc есть сетка Telerik, которая выглядит примерно так:

Screenshot

Теперь в нем перечислены все регионы в зоне, выбранной из списка, расположенного чуть выше сетки. zoneid - это внешний ключ в сетке. Теперь я хочу, чтобы, когда я добавлял новый регион в сетку, идентификатор зоны должен быть взят из списка вместо того, что присутствует в столбце зоны сетки, потому что это значение просто для отображения зоны, которое также можно удалить из сетки как из списка видно, к какой зоне относятся перечисленные регионы.

Я понимаю, что я мог бы использовать шаблоны редактора для отображения этого списка в сетке при редактировании, но я предпочитаю, чтобы он находился вне сетки и предоставлял некоторую фильтрацию на основе зоны, поскольку у нас, вероятно, будет много регионов на зону. поэтому сейчас меня беспокоит то, как я могу установить ZoneID региона (отредактированного или недавно добавленного) равным выбранному значению списка, который отображается чуть выше элемента управления сеткой.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2010

Я решил эту проблему, подключив событие onSave сетки Telerik как

<%
Html.Telerkik.Grid<xyz.company>()
.Name("name")
.// other properties
.Events(even=>even.onSave("onSave")
.Render();%>

Внутри обработчика событий onSave в JS я написал что-то вроде

function onSave(e)
{
    var data = e.values;
    data["companyID"] = $("#CompanySelectList").val();
    e.values = data;
    return true;
}

Событие onSave добавляет companyID в индекс companyID индекса json, который будет отправлен на сервер, и связыватель моделей свяжет его с именем свойства модели.

0 голосов
/ 13 декабря 2010

Когда вы нажимаете кнопку AddNewRecord, почему бы вам не установить значение вашей зоны равным zoneId, выбранному в значении комбинированного списка?

Я сделал кое-что похожее, но мне нужно было получить значение из Treeview.

    private void btnAddContact_Click(object sender, EventArgs e)
    {
        Int64 companyId = Int64.Parse(treeCompany.SelectedNode.Name);

        dsSociete.ContactRow newContact = dsSociete.Contact.NewContactRow();
        newContact.SocieteId = societeId;
        dsSociete.Contact.AddContactRow(newContact);
    }

И как только я добавляю новый контакт, он автоматически получает набор компаний (Societe is Company на французском языке).

Я сделал это в Winform, но я думаю, вы можете сделать то же самое в Web?

...