2

Kendo DropDownList を使用して、リストの上部に空白の項目を提供し、テンプレートを使用して複数の列を提供しようとしています。

   var ticketType = $("#TicketType").kendoDropDownList
({

    dataTextField: "TicketTypeName",
    dataValueField: "TicketTypeId",
    optionLabel: " ", //This should add a blank item, but errors out instead.
    dataSource:
    {
        serverFiltering: true,
        type: "jsonp",
        transport:
        {
            read:
            {
                url: "../Service/IncidentManagement.asmx/GetTicketTypeList",
                contentType: "application/json; charset=utf-8",
                type: "POST"
            }
        },
        schema:
        {
            data: "d"
        }
    },
    template: "<div><span>${TicketTypeName}</span><span>${TicketTypeDescription}</span></div>"
}).data("kendoDropDownList");

上記は生成します

Uncaught ReferenceError: TicketTypeDescription が定義されていません

以下で指定された optionLabel がない場合、ドロップダウンは正常に機能します (空の項目なし)。

optionLabel を指定してテンプレート オプションを削除すると、(複数の列がなくても) 正常に動作します。

テンプレート内で未定義かどうかを確認する方法はありますか? 次のようなもの:

<span>${TicketTypeDescription} !== undefined ? ${TicketTypeDescription} : '' </span>
4

3 に答える 3

2

Telerik からの応答によると:

この問題は、optionLabel がデータ オブジェクトの他のプロパティを認識していないことに起因しています。そのため、正しく機能させるには、空の値であっても、いくつかの値を設定する必要があります。

したがって、optionLabel は次のように指定する必要があります。

optionLabel: {
          TicketTypeName: " ",
          TicketTypeId: "",
          TicketTypeDescription: ""
        }
于 2014-06-30T21:52:18.783 に答える
0

#: data && data.TicketTypeDescription #を試すことができます

${} 構文も使用しないでください。これは非推奨です。

于 2014-06-20T08:35:49.003 に答える