我一直在試圖獲取在MultiSelect控件中工作的模板材料(ItemTemplate等)。在高層次上,我想在加載頁面時加載MultiSelect,並且希望能夠更新它。KendoUi MultiSelect ItemTemplate
我有一些非常簡單的HTML:
<script type="text/x-kendo-template" id="members-template">
<select multiple="multiple">
# for (var j = 0; j < Members.length; j++) { #
<option selected value=' + Members.length + '>'HI'</option>
# } #
</select>
</script>
<div id="TeeOffTimes"></div>
和JavaScript是:
var memberData =[
{
"Id": 1,
"FirstName": "Lorenzo",
"LastName": "Lamas",
"Gender": "M",
"Handicap": 72,
"Discount": 0,
"CartId": null,
"Email": null,
"Cart": null,
"Lockers": [],
"MemberAddresses": [],
"MemberCarts": [],
"MemberLockers": [],
"MemberTeeOffs": []
},
{
"Id": 2,
"FirstName": "Harry",
"LastName": "Burgess",
"Gender": "M",
"Handicap": 68,
"Discount": 0,
"CartId": null,
"Email": null,
"Cart": null,
"Lockers": [],
"MemberAddresses": [],
"MemberCarts": [],
"MemberLockers": [],
"MemberTeeOffs": []
},
{
"Id": 3,
"FirstName": "Paul",
"LastName": "Stevens",
"Gender": "M",
"Handicap": 78,
"Discount": 0,
"CartId": null,
"Email": null,
"Cart": null,
"Lockers": [],
"MemberAddresses": [],
"MemberCarts": [],
"MemberLockers": [],
"MemberTeeOffs": []
},
{
"Id": 4,
"FirstName": "Ben",
"LastName": "Crossen",
"Gender": "M",
"Handicap": 82,
"Discount": 0,
"CartId": null,
"Email": null,
"Cart": null,
"Lockers": [],
"MemberAddresses": [],
"MemberCarts": [],
"MemberLockers": [],
"MemberTeeOffs": []
}
];
$(function() {
$('#TeeOffTimes').kendoMultiSelect({
placeholder: "Select members...",
autoBind: false,
dataSource: {
type: "json",
serverFiltering: true,
transport: {
read: {
url: '/echo/json/',
type: 'GET'
}
},
schema: {
parse: function (response) {
var dataForTemplate = { Members: JSON.stringify(memberData) };
return { json: dataForTemplate };
}
}
},
itemTemplate: $("#members-template").html()
}).data("kendoMultiSelect");
});
代碼的Here is a jsFiddle。您可以看到我已使用jsFiddle的echo功能來模擬返回相關數據的Ajax調用。
任何KendoUi ninjas的挑戰?
是的。這就是我想要做的。感謝堆。現在,我只需要弄清楚如何進行更新。調用數據源上的同步功能什麼也不做。 – onefootswill
@onefoots將'.sync()'函數將數據更改推送到服務器。如果你想從服務器獲取新數據,替換已經加載的數據,請調用'.read()' – CodingWithSpike
是的。正如我懷疑的。同步不執行此功能。我使用Fiddler和Chrome開發人員工具進行監控。沒有變化推送到服務器。但我現在要脫離主題。我想如果一個星期左右我無法弄清楚,我會開始一個關於這個問題的新問題。但是將一個對象添加到DataSource並調用sync不會產生任何影響。使用數據源的更新方法進行配置。 – onefootswill