Webforms ページを使用しています。その上に、バックエンドの C# コードを呼び出して、シリアル化された "Customers" の JSON リストを取得する KnockoutJS ViewModel があります。
その配列をコンボボックスにデータバインドし、ボタンがクリックされたときに選択した顧客を別の配列に追加したいと考えています。選択した顧客のリストを単純な順序なしのリストに表示したいと考えています。
「追加」ボタンをクリックしたときに、顧客を「SelectedCustomers」プロパティに追加する方法がよくわかりません。注: 移動するのではなく、コピーするだけです。
Javascript/ノックアウト バインディング
<script type="text/javascript">
$(document).ready(function() {
function CustomerViewModel() {
var self = this;
self.Customers= <%= getJson() %>;
self.SelectedCustomers = ko.observableArray([]);
//operations
self.addCustomerToList = function() {
//Add selected customer to self.SelectedCustomers
}
}
ko.applyBindings(new CustomerViewModel());
});
</script>
HTML 要素
<select data-bind="options: Customers, optionsText: 'CustomerName', value: CustomerID, optionsCaption: 'Select a Customer to Add'"></select>
<button type="submit">Add Customer</button>
Selected Customers:
<ul data-bind="foreach: SelectedCustomers">
<li><span data-bind="text: CustomerName"></span></li>
</ul>