3

AJAX データソースを持つ Kendo-UI Grid があります。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が true の場合、フィールドにバインドするインセル テキストボックスをユーザーに持たせたいと思いますTextAnswer。値が false の場合、NummericAnswerプロパティにバインドします。

これどうやってするの?Template または 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>

多くの例については、FAQ 項目Grid のよくある質問: 値の表示を確認してください。

于 2015-09-03T09:58:05.987 に答える