我想在列的ClientTemplate中使用外部模板,如下所示:
df <- data.frame(F)
row.names(df)
但我得到一个空栏。
如果我使用内部(内联)模板,它可以正常工作:
@(Html.Kendo().Grid<Project>().Name("Projects").Columns(
cols =>
{
cols.Bound(m => m.LetterNumber);
cols.Bound(m => m.CityName);
cols.Bound(m => m.OrganName);
cols.Bound(m => m.DateString);
cols.Bound(m => m.EngineersCount);
cols.Bound(m => m.ExpertTypeString);
cols.Bound(m=>m.ProjectId).Title("").ClientTemplate("#buttonsTemplate(data)#");
}).DataSource(
ds => ds.Ajax().Read("GetList", "Projects"))
)
<script type="kendo/x-template" id="buttonsTempate">
#switch(State){
case 0:#
<a href="@Url.Action("SelectEngineers")?pid=#=ProjectId#">انتخاب مهندسین</a>
#break;
case 1:#
<a href="@Url.Action("Print")?pid=#=ProjectId#">چاپ نامه</a>
<a href="@Url.Action("SelectEngineers")?pid=#=ProjectId#">انتخاب مهندسین</a>
#break;
}#
</script>
<script>
var buttonsTemplate = kendo.template($("#buttonsTempate").html());
</script>
但我更喜欢外部模板这么长的模板。不知道是什么问题?
答案 0 :(得分:2)
由kendo.template()
创建的外部模板实际上是具有data
输入参数的函数。因此,在您的模板中,您应该在data.
之前添加所有列,例如:
<a href="@Url.Action("SelectEngineers")?pid=#=data.ProjectId#">
此外,在网格选项中,您应该使用#=
语法来查看输出:
.ClientTemplate("#=buttonsTemplate(data)#")