3

我有一个带有 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; }
}

如果 boolIsTextQuestion为真,我希望用户有一个绑定到该字段的 incell 文本框TextAnswer。如果该值为 false 我想将其绑定到NummericAnswer属性。

我怎样才能做到这一点?我想我需要使用模板或 ClientTemplate?

4

1 回答 1

4

根据 Telerik 文档:

如果网格是 ajax 绑定的,请使用 ClientTemplate 方法。该值应该是代表有效剑道模板的字符串。

一些来自他们的 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>

检查常见问题项目网格常见问题:显示值以获取更多示例。

于 2015-09-03T09:58:05.987 回答