Сетка данных ShieldUi показывает «нет данных для отображения», если есть только один результат набора данных

Я использую сетку Shieldui для отображения некоторых данных. Если имеется только один узел данных, таблица отображается и сообщает «Нет данных для отображения». Если есть два или более результатов, это показывает хорошо. Вот код, который я использую для отображения данных:

$('.data-holder').shieldGrid({
    dataSource: {
         data: jsonFromXML.HistoricalQuotes.HistoricalQuote
    }
});

Многоузловой xml, подобный приведенному ниже, отображается просто отлично -

<IRXML CorpMasterID="xxxxx">
  <HistoricalQuotes Ticker="xxx" Date="03/03/1992">
    <HistoricalQuote>
      <Bid>0</Bid>
      <Ask>0</Ask>
      <High>28.1643892082794</High>
      <Low>27.7277320112518</Low>
      <Volume>583524.1048</Volume>
      <Open>27.8368963105087</Open>
      <SharesOutstanding>0</SharesOutstanding>
      <Last>28.1643892082794</Last>
      <AdjustmentFactor>1.145063</AdjustmentFactor>
      <RollingEarnings>0</RollingEarnings>
      <ShortInterest>0</ShortInterest>
    </HistoricalQuote>
    <HistoricalQuote>
      <Bid>0</Bid>
      <Ask>0</Ask>
      <High>28.1643892082794</High>
      <Low>27.7277320112518</Low>
      <Volume>583524.1048</Volume>
      <Open>27.8368963105087</Open>
      <SharesOutstanding>0</SharesOutstanding>
      <Last>28.1643892082794</Last>
      <AdjustmentFactor>1.145063</AdjustmentFactor>
      <RollingEarnings>0</RollingEarnings>
      <ShortInterest>0</ShortInterest>
    </HistoricalQuote>
  </HistoricalQuotes>
</IRXML>

Но если мне вернут один узел данных, подобных этому, я получу сообщение «нет записей для отображения» -

<IRXML CorpMasterID="xxxxx">
  <HistoricalQuotes Ticker="xxx" Date="03/03/1992">
    <HistoricalQuote>
      <Bid>0</Bid>
      <Ask>0</Ask>
      <High>28.1643892082794</High>
      <Low>27.7277320112518</Low>
      <Volume>583524.1048</Volume>
      <Open>27.8368963105087</Open>
      <SharesOutstanding>0</SharesOutstanding>
      <Last>28.1643892082794</Last>
      <AdjustmentFactor>1.145063</AdjustmentFactor>
      <RollingEarnings>0</RollingEarnings>
      <ShortInterest>0</ShortInterest>
    </HistoricalQuote>
  </HistoricalQuotes>
</IRXML>

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

Любой вклад вообще очень ценится.


person ackerman    schedule 06.03.2015    source источник


Ответы (1)


Пробовал воспроизвести описанную проблему, но безрезультатно. На моей стороне привязка сетки к одному объекту показывает ее, а «нет записей для отображения сообщения». Моя установка:

    var products = [{
        ProductID: 1,
        ProductName: "Chai",
        SupplierID: 1,
        CategoryID: 1,
        QuantityPerUnit: "10 boxes x 20 bags",
        UnitPrice: 18.0000,
        UnitsInStock: 39,
        UnitsOnOrder: 0,
        ReorderLevel: 10,
        Discontinued: false
    }];

$("#grid1").shieldGrid({
            dataSource: {
                data: products
            },
            columns: [
            { field: "ProductName", title: "ProductName", width: "330px" },
            { field: "UnitPrice", title: "Unit Price", format: "{0:c}", width: "130px" },
            { field: "UnitsInStock", title: "Units In Stock", width: "130px" },
            { field: "Discontinued", width: "130px" }
            ]
        });

Какая у вас установка? Также можете ли вы подтвердить, что jsonFromXML.HistoricalQuotes.HistoricalQuote содержит одну запись? Также обратите внимание, что эта запись должна быть в массиве json, как в моем примере. Можете ли вы подтвердить, что когда xml содержит одну запись, объект в jsonFromXML.HistoricalQuotes.HistoricalQuote заворачивается в массив?

С уважением, Кэт

person katherine heigl    schedule 11.03.2015
comment
Кэт, большое спасибо за ответ. Это работает! К сожалению, кажется, что это работает, только если я устанавливаю столбцы, что является обломом, если я просто хочу, чтобы модель позаботилась обо всем, включая заголовки и тому подобное. Тем не менее, я очень ценю ваш вклад в это. - person ackerman; 13.03.2015