2016-03-31 11 views
0

私は剣道のオートコンプリートをチュートリアルで設定しようとしています。 問題は、(キャプチャを参照)は自動補完コントロールの表示オブジェクトの代わりに、私は剣道初期設定で設定したプロパティの値です:剣道のオートコンプリートは、オブジェクトの値の代わりに[オブジェクトオブジェクト]を表示します

@(
    Html.Kendo().AutoComplete() 
    .Name("products") 
    .Placeholder("Find Product...") 
    .DataTextField("Name") 
    .Template("<span><img src='/Content/Images/default-photo.jpg' " + 
    "width='20' height='20' />&nbsp;${data}</span>") 
    .DataSource(source => 
    { 
     source.Read(read => 
     { 
      read.Action("GetProducts", "Search") 
      .Data("onAdditionalData"); 
     }) 
      .ServerFiltering(true); 
    }) 

) 

<script> 
    function onAdditionalData() { 
     return { 
      text: $("#products").val() 
     }; 
    } 
</script> 

enter image description here

私は名前が正しく表示され、この項目をクリックした後: enter image description here

私のアクション返品タイプはreturn Json(products, JsonRequestBehavior.AllowGet); です。ここで商品はICollection<VmProduct> ですWhats going on?

+0

'onAdditionalData'の戻り値の型は、' text'という名前のオブジェクトを持つオブジェクトです。 '$("#products ")を直接返してみてください。val()' –

答えて

1

DataTextFieldを設定しましたが、Templateを設定すると上書きされます。これは、kendoが設定したフィールドを取得する代わりにテンプレートを実行するためです。しかし、それは問題ではない、問題はあなたのテンプレートではdataオブジェクトを実際に印刷していることです。提案テキストに関連するプロパティを印刷する必要があります。例:

.Template("<span><img src='/Content/Images/default-photo.jpg' " + 
"width='20' height='20' />&nbsp;${data.Name}</span>") 

何が起こるか試してみてください。

+0

あなたは私の命を救ってくれます!大いに感謝する! – user3818229

+0

@ user3818229 np、喜んで助けてください!答えとしてマークすることを忘れないでください。 – DontVoteMeDown

関連する問題