JSON情報を取得するための基本的にAJAX投稿である動的モデルからObservableArrayを作成したいと思います。次に、その配列をテーブルに追加します。
これがViewmodelを作成するための私のJavascriptであり、配列に追加するものは次のとおりです。
var ProductViewmodel;
function bindProductModel(Products) {
var self = this;
self.items = ko.mapping.fromJS([]);
ProductViewmodel = ko.mapping.fromJS(Products, self.items);
console.log(ProductViewmodel);
ko.applyBindings(ProductViewmodel);
}
function JSONProducts() {
$.ajax({
url: "WebForm1.aspx/AvailibleProducts",
// Current Page, Method
data: '{Warehouse: 1}',
// parameter map as JSON
type: "POST",
// data has to be POSTed
contentType: "application/json; charset=utf-8",
// posting JSON content
dataType: "JSON",
// type of data is JSON (must be upper case!)
timeout: 10000,
// AJAX timeout
success: function (result) {
bindProductModel(result);
},
error: function (xhr, status) {
alert(status + " - " + xhr.responseText);
}
});
}
JSONの取得は完全に機能します。
{
"d": [
{
"__type": "Warehouse.Tracntrace.Members_Only.StockMovement.ProductStagingMethod",
"ProductSKUID": 2,
"ProductSKUName": "Decoder 1131",
"WarehouseID": 1,
"WarehouseName": "SoftwareDevelopmentTest",
"SystemAreaName": "Staging",
"Qty": 5
}
]
}
ここで、データをテーブルにデータバインドしようとします。
<div id="TableContainer" class="gridview">
<table border="1" cellpadding="0" cellspacing="0">
<tbody data-bind="foreach: ProductViewmodel">
<tr>
<td data-bind="text: ProductSKUID"></td>
<td data-bind="text: ProductSKUName"></td>
<td data-bind="text: WarehouseID"></td>
<td data-bind="text: WarehouseName"></td>
<td data-bind="text: SystemAreaName"></td>
<td data-bind="text: QTY"></td>
</tr>
</tbody>
</table>
</div>
それを私の配列に追加したくないようです。アドバイスをいただければ幸いです。
よろしくジャック