VS2013 ライトスイッチ。JScript は WepAPI を呼び出して、日付に依存するデータのセットを取得します。JScript によってテーブルが作成され、データが入力されます。
日付コントロール (表示されていません) を変更すると、Web API で新しい呼び出しが発生し、このデータが既存のデータに追加されます。データを追加せずに上書きしようとしています。このコード (基本的にはコピーされます) が正しい方法であると仮定すると、行を書き込む前にテーブルをクリアする必要があります。完全に間違った方法で行っている場合は、喜んでテクニックを変更します。これは私の最初の LightSwitch プロジェクトです。
function generateList(element, currentItem) {
//debugger;
//var readingListApi = "../Controllers/TTReading?id=" + _contentListItem.screen.Installation1.id + "&startDate=" + _startListDate + "&endDate=" + _endListDate;
var readingListApi = "../Controllers/TTReading?id=" + currentItem.screen.Installation1.id + "&startDate=" + _startListDate + "&endDate=" + _endListDate;
var myTable = $('<table class="ui-responsive table-stroke" data-role="table" />');
var myHeader = $('<thead><tr><th>Volume</th><th>Flow</th><th>Read Date</th></tr></thead>');
var myBody = $('<tbody/>');
myTable.appendTo($(element));
//myHeader.appendTo($(myTable));
//myBody.appendTo($(myTable));
$.getJSON(readingListApi,
function(data) {
//var items = [];
//debugger;
if (data.length > 0 && data.length<1000000) {
$("#myTable tr").remove();
myHeader.appendTo($(myTable));
myBody.appendTo($(myTable));
$.each(data, function (key, val) {
var myRow = $("<tr/>");
$("<td/>").text(val.volume).appendTo($(myRow));
$("<td/>").text(val.flow).appendTo($(myRow));
$("<td/>").text(val.read_date_part).appendTo($(myRow));
myRow.appendTo($(myTable));
});
// var itemLength = items.length;
} else if (data.length == 0) {
var myEmptyRow = $("<tr/>");
$("<td/>").text("Empty Period").appendTo($(myEmptyRow));
myEmptyRow.appendTo($(myTable));
} else {
var myTooMuchDataRow = $("<tr/>");
$("<td/>").text("Too Much Data. Reduce Date Range").appendTo($(myTooMuchDataRow));
myTooMuchDataRow.appendTo($(myTable));
}
});
};