希望这将有一个简单的答案。
使用MVC3,我将POCO对象的简单列表作为模型传递给我的视图:
public partial class PeopleAddress
{
public int Id { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
public string City { get; set; }
public string State { get; set; }
public string Zip { get; set; }
public int PersonId { get; set; }
public virtual Person Person { get; set; }
}我使用PeopleId作为Person实体的FK属性,使用Person导航属性导航到对象。这里是我的视图控制器:
public ViewResult Index()
{
var peopleaddresses = db.PeopleAddresses.Include("Person");
return View(peopleaddresses.ToList());
}很琐碎。我在视图中将列添加到网格和普通编辑模式等中,但用于PersonId属性。
关于列的问题:如何使select (普通)模式显示model.Person.Name,但在编辑model.PersonId时保持编辑模式?为了进行模型绑定,我需要HTTP发送PersonId.。
帮助!
发布于 2011-09-04 09:28:52
简单
如果您只需要在编辑时使用Person.Id (在网格之外编辑),那么就很简单了。你的专栏将是:
columns.Bound(e => e.Person).Title("Person").ClientTemplate("<#= Person ? Person.Name : '' #>");你可以得到那个人的身份证:
onEdit(e) {
var personId = e.dataItem['Person'].Id;
}完整
但是,如果您试图使用组合框在网格中进行编辑,您的列应该如下所示:
columns.Bound(e => e.Person).Title("Person").ClientTemplate("<#= Person ? Person.Name : '' #>").EditorTemplateName("PersonSelector");编辑模板:
@(Html.Telerik().ComboBox()
.Name("YourNameGoesHere")
.DataBinding(binding => binding.Ajax().Select("SelectPeopleForComboBox","Shared")))您的客户脚本:
onEdit(e){
$comboBox = $(e.cell).find('#Person');
if($comboBox.length > 0) {
var comboBox = $ddl.data('tComboBox');
comboBox.fill(function(){
if (e.dataItem['Person'] != null){
ddl.value(e.dataItem['Person'].Id)
}
});
}
}https://stackoverflow.com/questions/7198393
复制相似问题