0

jqxGrid を SQL データ バインディングと largejsonresult で動作させるのに問題があります。これが私の現在のコードです。

コントローラ:

public LargeJsonResult GetCustomers()
    {
        var dbResult = db.CPTs.ToList();
        var customers = from customer in dbResult

                        select new
                        {
                            customer.CPT1,
                            customer.MOD,
                            customer.SDESC,
                            customer.FAGE,
                            customer.TAGE
                        };
        return new LargeJsonResult { Data = customers, JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet };
    }

意見:

<script type="text/javascript">
    $(document).ready(function () {
        // prepare the data
        var source = {
            datatype: "json",
            datafields: [{ name: 'CPT1' }, { name: 'MOD' },
            { name: 'SDESC' }, { name: 'FAGE' }, { name: 'TAGE' }, ],
            url: 'dbCPT/GetCustomers'
        };
        $("#jqxgrid").jqxGrid({
            source: source,
            theme: 'classic',
            columns: [{ text: 'Company Name', datafield: 'CompanyName',
                width: 250
            }, { text: 'CPT Code', datafield: 'CPT1', width: 150 },
{ text: 'Short Description', datafield: 'SDESC', width: 180 },
{ text: 'FAGE', datafield: 'From Age', width: 200 },
{ text: 'TAGE', datafield: 'To Age', width: 120}]
        });
    });
</script>

<h2>Index</h2>
<div id="jqxgrid"></div>

dbCPT/GetCustomers を直接実行すると、プルしているすべてのデータを含む出力ファイルが得られますが、dbCPT ページに移動してもグリッドには何も表示されません。

支援するために私のコードがさらに必要な場合は、お知らせください。

ありがとう、

4

1 に答える 1

0

私はそれを機能させました。以下のコードでは jqxDataAdapter を使用していますが、必要ではないと思います。

JavaScript

var source = {
    datatype: "json",
    datafields: [{ name: 'CompanyName' }, { name: 'ContactName' },
    { name: 'ContactTitle' }, { name: 'Address' }, { name: 'City'} ],
    url: 'Customers/GetCustomers'
};
var dataAdapter = new $.jqx.dataAdapter(source);

$("#jqxgrid").jqxGrid({
    source: dataAdapter,
    theme: 'classic',
    columns: [{ text: 'Company Name', datafield: 'CompanyName', width: 250 },
                { text: 'Contact Name', datafield: 'ContactName', width: 150 },
                { text: 'Contact Title', datafield: 'ContactTitle', width: 180 },
                { text: 'Address', datafield: 'Address', width: 200 },
                { text: 'City', datafield: 'City', width: 120}]
});

C#

public LargeJsonResult GetCustomers2()
{
    var dbResult = db.Customers.ToList();
    var customers = from customer in dbResult
                    select new 
                    { 
                        customer.CompanyName, 
                        customer.ContactName, 
                        customer.ContactTitle, 
                        customer.Address, 
                        customer.City 
                    };
    return new LargeJsonResult { Data = customers, JsonRequestBehavior = System.Web.Mvc.JsonRequestBehavior.AllowGet };
} 

jqxGrid の最新バージョンと、LargeJsonResult の適切な実装を使用していることを確認してください。

于 2012-05-17T07:16:58.910 に答える