您好我正在使用剑道网格来编辑价格表。
我正在尝试编辑表中的单个值:
@(Html.Kendo().Grid(Model).Name("PriceList")
.Columns(columns =>
{
columns.Bound(p => p.Id).Hidden();
columns.Bound(p => p.Name);
columns.Bound(p => p.ValidFrom).Format("{0:dd.MM.yyyy h:mm:ss}");
columns.Bound(p => p.ValidTill).Format("{0:dd.MM.yyyy h:mm:ss}");
columns.Bound(p => p.Created).Format("{0:dd.MM.yyyy h:mm:ss}");
columns.Bound(p => p.UserName);
columns.Bound(p => p.FilePath);
columns.Command(command => { command.Edit(); command.Destroy(); });
})
.DataSource(dataSource => dataSource.Ajax()
.Model(model =>
{
model.Id(p => p.Id);
model.Field(p => p.ValidFrom).Editable(false);
model.Field(p => p.ValidTill).Editable(true);
model.Field(p => p.Created).Editable(false);
model.Field(p => p.UserName).Editable(false);
model.Field(p => p.FilePath).Editable(false);
model.Field(p => p.Name).Editable(false);
})
.Read("PriceList_Read", "Admin")
.Destroy("PriceList_Editing_Destroy", "Admin")
.Update(update=>update.Action("PriceList_Editing_Update", "Admin"))
.Events(e=>e.Error("error_handler"))
)
.Editable(editable => editable.Mode(GridEditMode.InLine))
.AutoBind(true)
)
而且我在将网格中的编辑值传递给我的控制器时遇到了麻烦:
public ActionResult PriceList_Editing_Update([DataSourceRequest] DataSourceRequest request, PriceListViewModel model)
{
int Id = model.Id;
string Name = model.Name;
DateTime date = model.ValidTill; // 0001 00:00:00 value all the time
return View("Index", GetViewResult());
}
我总是取回空的日期时间值(我的意思是空的{1. 1. 0001 0:00:00}
)同样的问题是使用 DateTime 属性(Created 和 ValidFrom)的其他 2 个列。其余值已正确回发。我试图使用这些值来获取这些值,string DateTillStr = Request.Params["ValidTill"];
但是如果我在 firebug 中检查我的 GET,我可以看到网格没有在 Request 中发回这个值,它只发送我的模型对象的 NON Datetime 值。像这样:
Actual false
FilePath D:\Projects\CPSkla\CPSkla\App_Data\Cen°k 2012_10.xlsx
Id 23
Name Testovací ceník
User 0
User1 null
UserName djezek
仅此而已,我的模型中仅缺少这 7 个属性,其余 4 个:
public partial class PriceListView
{
public int Id { get; set; }
public int User { get; set; }
public string Name { get; set; }
public System.DateTime ValidFrom { get; set; }
public System.DateTime ValidTill { get; set; }
public string FilePath { get; set; }
public Nullable<System.DateTime> Created { get; set; }
public Nullable<System.DateTime> Updated { get; set; }
public bool Actual { get; set; }
public string UserName { get; set; }
}
还有其他方法可以将这些数据发回吗?我发现我可以将其他数据附加到更新请求,但我遇到了如何在 javascript 函数中识别表中已编辑的行的问题(我知道如何识别选定的值但未编辑)。
我使用萤火虫发现剑道网格内的日历选择器实际上并没有将其选定的值放入分配给保存日期值的输入中。有什么想法吗?