使用Telerik Grid在保存和更新时发送自定义值

时间:2010-12-04 19:46:06

标签: asp.net-mvc asp.net-mvc-2 telerik telerik-mvc

我的asp.net mvc应用程序中有一个Telerik网格,类似于:

Screenshot

现在,它列出了从位于网格正上方的列表中选择的区域中的所有区域。 zoneid是网格中的外键。现在我希望当我在网格中添加新区域时,应该从列表中取出zoneID而不是网格区域列中的内容,因为该值只是为了显示区域,也可以从网格中删除从列表中可以明显看出所列区域属于哪个区域。

据我所知,我可以使用编辑器模板在编辑时在网格内显示此列表,但我更喜欢它在网格之外并根据区域提供一些过滤,因为我们可能每个区域有很多区域。所以我现在关心的是,如何设置一个区域(编辑或新添加)的ZoneID等于显示在网格控件上方的列表的选定值。

2 个答案:

答案 0 :(得分:0)

当您单击AddNewRecord按钮时,为什么不将区域的值设置为等于在组合框值中选择的zoneId?

我做了一些类似的事情,但我必须从树视图中获取价值。

    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是法语公司)集。

我在Winform中做过,但我想你可以在网上做同样的事情吗?

答案 1 :(得分:0)

我通过挂钩Telerik网格的onSave事件解决了这个问题,如

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

在JS中的onSave事件处理程序中我写了类似

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

onSave事件将companyID索引添加到将提交给服务器的json的companyID索引,而modelbinder将它与模型的相关属性名称绑定。