0

我的 asp.net mvc 应用程序中有一个 Telerik 网格,它看起来像:

截屏

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

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

4

2 回答 2

0

当您单击 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 是法语中的公司)集。

我在 Winform 中做到了,但我猜你可以在 Web 中做同样的事情?

于 2010-12-12T23:46:50.577 回答
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 事件在将提交给服务器的 json 的 companyID 索引处添加 companyID,modelbinder 会将其与模型的相关属性名称绑定。

于 2010-12-15T08:45:53.583 回答