我有一个带有AJAX数据源的Kendo-UI网格。 我正在使用ASP.NET-MVC。
该模型如下所示:
public class QuestionModelPlayer
{
public Guid Id { get; set; }
public String Description { get; set; }
public string TextAnswer { get; set; }
public int? NummericAnswer { get; set; }
public bool isTextQuestion { get; set; }
}
如果bool IsTextQuestion
为true,我希望用户有一个与字段TextAnswer
绑定的incell文本框。如果值为false,我想将其绑定到NummericAnswer
属性。
我该怎么做? 我想我需要使用Template或ClientTemplate吗?
答案 0 :(得分:4)
根据Telerik文件:
如果网格是ajax绑定,请使用ClientTemplate方法。该值应为表示有效Kendo模板的字符串。
来自他们的doco的几个片段大致适应了你的情况(但没有经过测试!)显示它是如何完成的。首先作为一些内联javascript代码:
columns.Bound(q => q.isTextQuestion)
.ClientTemplate (
"# if (isTextQuestion == true) { #" +
"#: TextAnswer #" +
"# } else { #" +
"#: NummericAnswer #" +
"# } #"
);
或者通过调用javascript函数:
columns.Bound(q => q.isTextQuestion)
.ClientTemplate("#= getAnswer(data) #");
<script>
function getAnswer(question) {
var html = kendo.format( "<text>{0}</text>"
,question.isTextQuestion
? question.TextAnswer
: question.NummericAnswer
);
return html;
}
</script>
查看常见问题项Grid Frequently Asked Questions: Displaying Values以获取更多示例。