Проблемы сортировки и подкачки - PullRequest
0 голосов
/ 04 декабря 2009

Я бы хотел отсортировать весь набор данных вместо сортировки по страницам. Но по какой-то причине он сортирует страницу за страницей, а не весь набор данных. Не могли бы вы помочь мне в этом вопросе. Я использую хранилище группировки.

    var store = new FMP.AspNetJsonStore({
        fields: [
                       { name: 'AssetID' },
                       { name: 'AssociationID' },
                       { name: 'Image' },
                       { name: 'StatusName' },
                       { name: 'ModelName' },
                       { name: 'IPAddress' },
                       { name: 'InScope', type: 'boolean' },
                       { name: 'ServicePlanName' },
                       { name: 'PricePlanName' },
                       { name: 'PricePlanDescription' },
                       { name: 'Program' },
                       { name: 'ServicePlanID' },
                       { name: 'Customer' },
                       { name: 'Black', type: 'float' },
                       { name: 'Cyan', type: 'float' },
                       { name: 'Magenta', type: 'float' },
                       { name: 'Yellow', type: 'float' },
                       { name: 'BlackPct' },
                       { name: 'CyanPct' },
                       { name: 'MagentaPct' },
                       { name: 'YellowPct' },
                       { name: 'PrinterMarkerSupplies' },
                       { name: 'PageCount' },
                       { name: 'BlackImpressions' },
                       { name: 'ColorImpressions' },
                       { name: 'PricePlanID' },
                       { name: 'ResponsibilityForAction' },
                       { name: 'PrinterSerialNumber' }

                    ],

        totalProperty: "TotalCount",
        autoLoad: { params: { start: 0, limit: myPageSize} },
        //autoLoad: true,
        proxy: new Ext.data.HttpProxy({
            // Call web service method using GET syntax
            url: 'GetPrintersGrid.asmx/buildGrid',
            // Ask for Json response
            headers: { 'Content-type': 'application/json' },
            method: "GET"
        }),
        //remoteSort: true,
        sortInfo: { field: 'PageCount', direction: "DESC" },
        groupField: 'Customer',
        root: 'Records'
    });

Вот мой веб-сервис.

public PagedResult<FMPAsset> buildGrid(int start, int limit)
{
    Guid AccountID = (Guid)Session["AccountID"];
    string whereClause = "SELECT value a FROM XSP_AssetList_V AS a WHERE a.AccountID = GUID'" + AccountID + "'";
    List<FMPAsset> fmpAssets = new List<FMPAsset>();



    using (XSPAssetModel.XSPAssetEntities assetEntities = new XSPAssetEntities(b.BuildEntityConnectionString1("XSMDSN")))
    {
        ObjectQuery<XSP_AssetList_V> assets = new ObjectQuery<XSP_AssetList_V>(whereClause, assetEntities);
        var assetPage = assets.OrderBy(x=>x.StatusName).Skip(start).Take(limit);
        var totalAssetCount = assets.Count();


        currentAssets = assetPage.ToList();
        int currentAssetsCount = currentAssets.Count;
        string imgprefix = System.Configuration.ConfigurationManager.AppSettings["ImgPrefix"];
        char[] separators = { '/' };
        string appname = "";
        int lastloc = imgprefix.Substring(0, imgprefix.Length - 1).LastIndexOfAny(separators);
        if (lastloc > 6)
        {
            appname = imgprefix.Substring(lastloc + 1);
        }


        FMPAsset asset = new FMPAsset();

        //StreamWriter sw = new StreamWriter("C:\\test.txt");

        XSPPrinterMarkerSupplyModel.XSPPrinterMarkerSupplyEntities markerCtx = new XSPPrinterMarkerSupplyModel.XSPPrinterMarkerSupplyEntities(b.BuildEntityConnectionString1("XSMDSN"));

        for (int x = 0; x < currentAssetsCount; x++)
        {
            asset = new FMPAsset();

            asset.AssetID = currentAssets[x].AssetID.ToString();
            asset.PricePlanID = currentAssets[x].PricePlanID.ToString();
            asset.AssociationID = currentAssets[x].AssociationID;
            asset.ModelName = currentAssets[x].ModelName;
            asset.ResponsibilityForAction = currentAssets[x].ResponsibilityForAction;
            asset.IPAddress = (String.IsNullOrEmpty(currentAssets[x].PrinterIPAddress)) ? "No IP" : currentAssets[x].PrinterIPAddress; ;

                            Guid id = currentAssets[x].AssetID;

            asset = SetCMYKvalues(asset, x);

            BuilldImpressionsValues(currentAssets[x], ref asset);
            fmpAssets.Add(asset);
        }


        var y = new PagedResult<FMPAsset>();
        y.Records =  fmpAssets;
        y.TotalCount = totalAssetCount;
        return y;




    }

}

Я также попытался отсортировать все записи и затем вернуть только первые 10 записей, но я не смог отсортировать весь набор данных, вместо этого он делал страницу страницы.

Спасибо.

1 Ответ

0 голосов
/ 04 декабря 2009

remoteSort: логическое значение Значение true, если сортировка должна выполняться путем запроса прокси-сервера предоставить обновленную версию объекта данных в отсортированном порядке, в отличие от сортировки кэша записей на месте (по умолчанию false). Попробуйте установить для параметра RemoteSort значение true.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...