1

私はデータベースに保存するslickgirdを持っており、計算は機能します。ただし、私の問題は、データベースからデータを返してslickgridにデータを入力するときです。次の形式でデータを正常に返すAjaxクエリを呼び出しています。

[
{
    'HeaderService': 'ServicerReview',
    'Service': '',
    'Numberof': '',
    'at': '',
    'Charged': '',
    'Total': '',
    'Total2': '',
    'Discount': '',
    'FFO': '',
    'EC': '',
    'ECat': '',
    'ECCost': '',
    'ECCostTotal': '',
    'ECCostTotal2': '',
    'Margin': ''
},
{
    'HeaderService': '',
    'Service': 'SeniorReviewer',
    'Numberof': '1',
    'at': '@',
    'Charged': '£600.00',
    'Total': '£600.00',
    'Total2': '',
    'Discount': '',
    'FFO': '',
    'EC': '1',
    'ECat': '',
    'ECCost': '£350.00',
    'ECCostTotal': '£350.00',
    'ECCostTotal2': '',
    'Margin': ''
},    
 .. and so on.
]

(。同じ構造の他のレコードである)。currentData 次に、グリッドを次のように装飾します。

  var columns = [{ id: "HeaderService", name: "Category", field: "HeaderService", options: serviceHeaders, editor: Slick.Editors.SelectOption, width: 200 },
           { id: "Service", name: "Service", field: "Service", options: serviceActuals, editor: Slick.Editors.SelectOption, width: 150 },
           { id: "Numberof", name: "No", field: "Numberof", editor: Slick.Editors.Text, width: 50 },
           { id: "at", name: "", field: "at", width: 30 },
           { id: "Charged", name: "Per Unit", field: "Charged", editor: Slick.Editors.Text },
           { id: "Total", name: "Total", field: "Total", editor: Slick.Editors.Text },
           { id: "Total2", name: "Sub Total", field: "Total2", editor: Slick.Editors.Text },
           { id: "Discount", name: "Discount", field: "Discount", options: ",Yes", editor: Slick.Editors.SelectOption, cssClass: "greenbackground", width: 50 },
           { id: "FFO", name: "Fixed Fee", field: "FFO", editor: Slick.Editors.Text, cssClass: "greenbackground" },
           { id: "EC", name: "EC", field: "EC", editor: Slick.Editors.Text, width: 50 },
           { id: "ECat", name: "Cat", field: "ECat", editor: Slick.Editors.Text, width: 30 },
           { id: "ECCost", name: "Cost", field: "ECCost", editor: Slick.Editors.Text },
           { id: "ECCostTotal", name: "CostTotal", field: "ECCostTotal", editor: Slick.Editors.Text },
           { id: "ECCostTotal2", name: "CostTotal2", field: "ECCostTotal2", editor: Slick.Editors.Text },
           { id: "Margin", name: "Margin", field: "Margin", editor: Slick.Editors.Text }, ];

var options = {
    enableCellNavigation: true,
    enableColumnReorder: false,
    editable: true,
    cellHighlightCssClass: "changed"
};

var currentData;

$(function () {
    var json = null;
    $.ajax({
        async: false,
        global: false,
        type: 'GET',
        url: '@Url.Action("GetDetailsforQuote")',
        dataType: "json",
        success: function (data) {
            currentData = "[" + data.toString() + "]";
            debugger;
            return data;
        }
    });

    data = currentData;
    alert(data);
    grid = new Slick.Grid("#myServicesGrid", data, columns, options);

しかし、グリッドが画面に表示され、列は正常ですが、データのない空の行がたくさんあります(データには6つのレコードのみが含まれている必要があります)。私が間違っていることに対するアイデアはありますか?

4

1 に答える 1

1

了解しました...追加する必要がありました

     data = eval("[" + currentData + "]");

    grid = new Slick.Grid("#myServicesGrid", data, columns, options);

見てくれてありがとう。

于 2012-10-11T11:42:49.160 に答える