Kendo ui 剑道UI MVC网格日期编辑器模板未显示网格中的值
我有以下看法Kendo ui 剑道UI MVC网格日期编辑器模板未显示网格中的值,kendo-ui,kendo-grid,kendo-asp.net-mvc,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我有以下看法 @using BecomingAKendoUISamurai.ViewModels <h2>Step 21 MVC Grid CRUD</h2> <br/> @(Html.Kendo().Grid<SamuraiViewModel>() .Name("SamuraiGrid") .Columns(columns => { columns.Bound(m => m.Id).Hidde
@using BecomingAKendoUISamurai.ViewModels
<h2>Step 21 MVC Grid CRUD</h2>
<br/>
@(Html.Kendo().Grid<SamuraiViewModel>()
.Name("SamuraiGrid")
.Columns(columns =>
{
columns.Bound(m => m.Id).Hidden();
columns.Bound(m => m.FirstName);
columns.Bound(m => m.LastName);
columns.Bound(m => m.RankId).ClientTemplate("#=Rank#");
columns.Bound(m => m.DateOfBirth).Width(125);
columns.Bound(m => m.DateOfDeath).Width(125);
columns.Command(command => { command.Edit(); command.Destroy(); }).Width(200);
})
.DataSource(source => source
.Ajax()
.Sort(s => s.Add(p => p.LastName).Ascending())
.PageSize(5)
.Model(model =>
{
model.Id(m => m.Id);
})
.Create(create => create.Action(MVC.Home.ActionNames.CreateSamuraiMvc, MVC.Home.Name))
.Read(read => read.Action(MVC.Home.ActionNames.ReadSamuraiMvc, MVC.Home.Name))
.Update(update => update.Action(MVC.Home.ActionNames.UpdateSamuraiMvc, MVC.Home.Name))
.Destroy(destroy => destroy.Action(MVC.Home.ActionNames.DestroySamuraiMvc, MVC.Home.Name))
)
.Editable(editable => editable.Mode(GridEditMode.InLine)) //PopUp and InCell
.Sortable()
.Pageable(p => p.PageSizes(new int[]{2,4,6}))
.Filterable()
.ToolBar(toolbar => toolbar.Create())
)
调用控制器的读取方法
public virtual JsonResult ReadSamuraiMvc([DataSourceRequest] DataSourceRequest request)
{
return Json(GetSamuraiViewModels().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
private List<SamuraiViewModel> GetSamuraiViewModels()
{
var viewModel = new List<SamuraiViewModel>();
var samurais = samuraiService.ReadSamurai().ToList();
if (samurais.Any())
{
samurais.ForEach(s => viewModel.Add(new SamuraiViewModel(s)));
}
return viewModel;
}
公共虚拟JsonResult ReadSamuraiMvc([DataSourceRequest]DataSourceRequest请求)
{
返回Json(GetSamuraiViewModels().ToDataSourceResult(request),JsonRequestBehavior.AllowGet);
}
私有列表GetSamuraiViewModels()
{
var viewModel=新列表();
var samurais=samuraiService.ReadSamurai().ToList();
if(sumurais.Any())
{
ForEach(s=>viewModel.Add(新的SamuraiViewModel));
}
返回视图模型;
}
我可以看到网格中的所有数据。例如,第1行具有:
“哈托里”“汉佐”“大师”“1541年3月15日”“1563年4月16日”编辑删除
当我单击编辑按钮时,名字、姓氏和排名都具有行中定义的值,但出生日期和死亡日期都为空
我该如何解决这个问题
我尝试过使用内联和弹出模式,得到了相同的结果。
提前谢谢 尝试使用DatePickerFor:
@model DateTime?
@(Html.Kendo().DatePickerFor(m => m)
.Format("MM/dd/yyyy")
)
您是否尝试过将ui提示从date of birth属性中去掉,并尝试使用mvc包装提供的默认日期时间选择器。或者尝试使用kendo().datepickerfor(model),这将为您绑定值。还有,为什么不检查model.hasvalue是否为空如果使用可为空的dateTime当我从模型中删除UIHint时,我会得到默认的dateTime选择器编辑器,但它也是空的。这是我最初尝试的,但不起作用。然后我找到了一行,其中的DateOfBirth实际上包含数据,我发现这完全是奇怪的。因此,我更改了Hatori Hanzo的出生日期和死亡日期(在我上面的例子中,从“1541年3月15日”“1563年4月16日”更改为“1941年3月15日”和“1963年4月16日”当我刷新网格并按下“编辑”按钮时,数据就在那里。在某个日期之前允许值似乎有问题。1900年1月1日之前的任何值都不会在编辑模式下显示。这是怎么回事?我添加了.Min(新日期时间(1000,1,1))到Date.cshtml文件,现在我看到了我的所有日期。我开始记得日期选择器的默认最小值是1/1/1900,因此它在此之前没有显示日期。
public virtual JsonResult ReadSamuraiMvc([DataSourceRequest] DataSourceRequest request)
{
return Json(GetSamuraiViewModels().ToDataSourceResult(request), JsonRequestBehavior.AllowGet);
}
private List<SamuraiViewModel> GetSamuraiViewModels()
{
var viewModel = new List<SamuraiViewModel>();
var samurais = samuraiService.ReadSamurai().ToList();
if (samurais.Any())
{
samurais.ForEach(s => viewModel.Add(new SamuraiViewModel(s)));
}
return viewModel;
}
@model DateTime?
@(Html.Kendo().DatePickerFor(m => m)
.Format("MM/dd/yyyy")
)