Javascript 剑道网格计算变量
我想在我使用的剑道网格中添加一个计算字段。以下是我的代码片段:Javascript 剑道网格计算变量,javascript,kendo-grid,kendo-asp.net-mvc,Javascript,Kendo Grid,Kendo Asp.net Mvc,我想在我使用的剑道网格中添加一个计算字段。以下是我的代码片段: @{Html.Kendo().Grid<StatuteMaintenance.Data.Statute>() .Name("mainGrid") .Columns(c => { c.Bound(e => e.Statute_Number);
@{Html.Kendo().Grid<StatuteMaintenance.Data.Statute>()
.Name("mainGrid")
.Columns(c =>
{
c.Bound(e => e.Statute_Number);
c.Bound(e => e.Statute_Description);
c.Bound(e => e.Effective_Start_Date).Format("{0:MM/dd/yyyy}");
c.Bound(e => e.Expiration_Date).Format("{0:MM/dd/yyyy}");
c.Bound(e => e.VIO_Type);
c.Bound(e => e.Fine_Amount);
c.Template(e => { }).ClientTemplate("#=calculate(Exipration_Date)#");//should be handled in model.
if (Roles.IsUserInRole("NSP\\IT-Development All")) { c.Command(command => { command.Edit(); }); }
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Sortable()
.Filterable()
.Pageable(p => p
.Refresh(true)
.PageSizes(true)
)
.DataSource(d => d
.Ajax()
.Model(m =>
{
m.Id(e => e.TreeID);
m.Field(e => e.Statute_Number).Editable(false);
m.Field(e => e.VIO_Type).Editable(true);
m.Field(e => e.Statute_Description).Editable(false);
m.Field(e => e.Effective_Start_Date).Editable(false);
m.Field(e => e.Expiration_Date).Editable(false);
//m.Field(e => e.CurrentlyEffective).Editable(false);
}
)
.Read(r => r.Action("VioTypeGridDataSource", "VIOType"))
.Update(r => r.Action("VioTypeGridUpdate", "VIOType"))
.Sort(s => s.Add(e => e.Statute_Number).Ascending())
)
.Render();
}
<script>
function calculate(s) {
console.log(s);
result = "";
if (s.Expiration_Date < DateTime.Now) {
result = "No"
}
else {
result = "Yes"
}
return result;
}
@{Html.Kendo().Grid()
.名称(“主电网”)
.列(c=>
{
c、 绑定(e=>e.U号);
c、 绑定(e=>e.U描述);
c、 绑定(e=>e.Effective_Start_Date).Format(“{0:MM/dd/yyyy}”);
c、 绑定(e=>e.Expiration_Date).Format(“{0:MM/dd/yyyyy}”);
c、 绑定(e=>e.VIO_类型);
c、 绑定(e=>e.罚款金额);
c、 Template(e=>{}).ClientTemplate(#=calculate(Exipration#u Date)#*)//应该在模型中处理。
if(Roles.IsUserInRole(“NSP\\IT Development All”){c.Command(Command=>{Command.Edit();});}
})
.Editable(可编辑=>Editable.Mode(GridEditMode.InLine))
.Sortable()
.可过滤()
.Pageable(p=>p
.刷新(真)
.页面大小(真)
)
.DataSource(d=>d
.Ajax()
.Model(m=>
{
m、 Id(e=>e.TreeID);
m、 字段(e=>e.U编号)。可编辑(假);
m、 字段(e=>e.VIO_类型)。可编辑(true);
m、 字段(e=>e.U描述)。可编辑(false);
m、 字段(e=>e.Effective\u Start\u Date)。可编辑(false);
m、 字段(e=>e.Expiration\u Date)。可编辑(false);
//m、 字段(e=>e.CurrentlyEffect)。可编辑(false);
}
)
.Read(r=>r.Action(“VioTypeGridDataSource”、“VIOType”))
.Update(r=>r.Action(“VioTypeGridUpdate”、“VIOType”))
.Sort(s=>s.Add(e=>e.status\u Number).Ascending())
)
.Render();
}
函数计算{
控制台日志;
结果=”;
如果(s.Expiration\u Date
我得到一个未定义“s”的运行时错误
我这样做对吗?我查看了其他示例,没有一个示例的计算中有“DateTime”。模板列中的过期日期拼写不正确。我已将其注释掉。确保其拼写与模型法规中的拼写相同 所有使用客户机模板的示例都与绑定列一起工作,我在下面的代码片段中也做了同样的工作。您还可以取消对行的注释,并更正expiration的拼写,然后查看不使用绑定列附加的想法是否有效,或者使用现有的代码段代码是否有效 我还稍微调整了剑道网格声明
@(Html.Kendo().Grid<StatuteMaintenance.Data.Statute>()
.Name("mainGrid")
.Columns(c =>
{
c.Bound(e => e.Statute_Number);
c.Bound(e => e.Statute_Description);
c.Bound(e => e.Effective_Start_Date).Format("{0:MM/dd/yyyy}");
c.Bound(e => e.Expiration_Date).Format("{0:MM/dd/yyyy}");
c.Bound(e => e.VIO_Type);
c.Bound(e => e.Fine_Amount);
//c.Template(e => { }).ClientTemplate("#=calculate(Expiration_Date)#");//should //be handled in model.
c.Bound( e=>e.Expiration_Date).ClientTemplate("#=calculate(Expiration_Date)#");
if (Roles.IsUserInRole("NSP\\IT-Development All")) { c.Command(command => { command.Edit(); }); }
})
.Editable(editable => editable.Mode(GridEditMode.InLine))
.Sortable()
.Filterable()
.Pageable(p => p
.Refresh(true)
.PageSizes(true)
)
.DataSource(d => d
.Ajax()
.Model(m =>
{
m.Id(e => e.TreeID);
m.Field(e => e.Statute_Number).Editable(false);
m.Field(e => e.VIO_Type).Editable(true);
m.Field(e => e.Statute_Description).Editable(false);
m.Field(e => e.Effective_Start_Date).Editable(false);
m.Field(e => e.Expiration_Date).Editable(false);
//m.Field(e => e.CurrentlyEffective).Editable(false);
}
)
.Read(r => r.Action("VioTypeGridDataSource", "VIOType"))
.Update(r => r.Action("VioTypeGridUpdate", "VIOType"))
.Sort(s => s.Add(e => e.Statute_Number).Ascending())
)
.Render();
)
<script>
function calculate(s) {
console.log(s);
// result = "";
// if (s.Expiration_Date < DateTime.Now) {
// result = "No"
//}
// else {
// result = "Yes"
//}
// return result;
}
@(Html.Kendo().Grid())
.名称(“主电网”)
.列(c=>
{
c、 绑定(e=>e.U号);
c、 绑定(e=>e.U描述);
c、 绑定(e=>e.Effective_Start_Date).Format(“{0:MM/dd/yyyy}”);
c、 绑定(e=>e.Expiration_Date).Format(“{0:MM/dd/yyyyy}”);
c、 绑定(e=>e.VIO_类型);
c、 绑定(e=>e.罚款金额);
//c、 Template(e=>{}).ClientTemplate(#=calculate(Expiration#Date)#)应该//在模型中处理。
c、 绑定(e=>e.Expiration_Date).ClientTemplate(“#=计算(Expiration_Date)#”);
if(Roles.IsUserInRole(“NSP\\IT Development All”){c.Command(Command=>{Command.Edit();});}
})
.Editable(可编辑=>Editable.Mode(GridEditMode.InLine))
.Sortable()
.可过滤()
.Pageable(p=>p
.刷新(真)
.页面大小(真)
)
.DataSource(d=>d
.Ajax()
.Model(m=>
{
m、 Id(e=>e.TreeID);
m、 字段(e=>e.U编号)。可编辑(假);
m、 字段(e=>e.VIO_类型)。可编辑(true);
m、 字段(e=>e.U描述)。可编辑(false);
m、 字段(e=>e.Effective\u Start\u Date)。可编辑(false);
m、 字段(e=>e.Expiration\u Date)。可编辑(false);
//m、 字段(e=>e.CurrentlyEffect)。可编辑(false);
}
)
.Read(r=>r.Action(“VioTypeGridDataSource”、“VIOType”))
.Update(r=>r.Action(“VioTypeGridUpdate”、“VIOType”))
.Sort(s=>s.Add(e=>e.status\u Number).Ascending())
)
.Render();
)
函数计算{
控制台日志;
//结果=”;
//如果(s.Expiration\u Date
看看这个使用HTML5完成的示例
我仍然收到相同的错误,这次是“过期日期未定义”。在其他示例中,我看到整个网格都封装在脚本中。我的剑道格网在脚本之外运行,这可能是我的问题。仍在寻找解决方案。编辑问题并将当前版本的完整代码粘贴到此处。如果您能快速完成,我将尝试提供帮助。我已发布完整代码>Luke Shinn。你忘了接受它作为一个答案,让我知道它是否适合你。回答这个问题需要很多努力。