0

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));
        }
    });

};

4

1 に答える 1

0

グーグルの助けを借りて解決しました。毎回新しいテーブルを書き込んでいることを Firebug で証明しました。したがって、解決策は、テーブルに readTable という ID を与えることでした。

var tbl = document.getElementById("readTable");
    if (tbl) tbl.parentNode.removeChild(tbl);

追加ロジックの前。

于 2014-07-31T02:27:38.217 に答える