我的asp.net mvc应用程序中有一个Telerik网格,类似于:
现在,它列出了从位于网格正上方的列表中选择的区域中的所有区域。 zoneid是网格中的外键。现在我希望当我在网格中添加新区域时,应该从列表中取出zoneID而不是网格区域列中的内容,因为该值只是为了显示区域,也可以从网格中删除从列表中可以明显看出所列区域属于哪个区域。
据我所知,我可以使用编辑器模板在编辑时在网格内显示此列表,但我更喜欢它在网格之外并根据区域提供一些过滤,因为我们可能每个区域有很多区域。所以我现在关心的是,如何设置一个区域(编辑或新添加)的ZoneID等于显示在网格控件上方的列表的选定值。
答案 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将它与模型的相关属性名称绑定。