Таблица долния статистика за YUI 2 DataTable

13-ти Януари, 2011 година в 4:00 ч. от Мат Паркър | В развитие | No Comments

В YUI 2 DataTable прави много. Но едно от нещата, той не прави нещо, с маса долния, където можете да очаквате да намерите общи суми, средни или други данни, обобщение. Така че аз съм удължен DataTable да добавите обобщени данни за числови данни.

Първо той ще

На първо място, да я използват: ще ви е необходима кода от GitHub - има три JS файлове, и ще трябва всички от тях на страницата си, след като DataTable JS YUI файл. И вие може да искате да се промени именно пространство - използваме YAHOO.LPLT.DataTable като разширяване на YAHOO.widget.DataTable . Аз ще обясня малко повече за тези файлове по-долу.

Задавате си DataTable, както обикновено, но има три неща, които трябва да направите, за да получите обобщение работа:

  1. Уверете се, че източник на данни посочва "номер" парсери за полета, които искате да се обобщи, особено ако правиш вградени клетка редакция:
      myDataSource.responseSchema = {области: [
        {Ключ: "количеството", анализатор: "броя"}
        / * И т.н. ..  * /
     ]};
    
  2. Добави довереник ключ-стойност на columnStats: вярно в масив колона определение:
      Var myColumnDefs = [
         {Ключ: "количеството", етикета: "Количество", columnStats: вярно} 
         / * И т.н. ..  * /
     ];
    
    за колоните, които искате обобщени. (Общата сума на своя "номер" колона може би не е много полезно!).
  3. Кажете на DataTable, в която статистиката за изчисляване:
     Var myDataTable = нови YAHOO.LPLT.DataTable ("exampleEl",
         myColumnDefs, 
         myDataSource, 
         {ColumnStats: {на: вярно, справки: ['сума']}}
     );
    
    Това е възможно най-прост начин за конфигуриране на колона статистически данни, но можете да добавите допълнителни статистически данни, персонализирате етикети и др.

Има един пример на GitHub да играе с тях.

Преди няколко точки:

  • В долния ще се промени с вашата трапеза. Така че, ако показване / скриване на колони, да ги движите, ще добавят нови, добавяне / премахване на редове, нещо, или да използвате вградени редактори клетка, долната лента ще обнови потребителския интерфейс и статистически данни за това.
  • Можете да добавяте колкото се може повече редове в долния колкото искате, по един ред за всяка статистика. Такъв, какъвто е, можете да имате предвид, медиана, сумата, мин., не повече, обхват, STDEV, различия, или varianceUnbiased. "Статистика" точка на в конфигурацията е масив: трябва само да добавите статистика, която искате да този масив (например stats: ["min", "median", "stdev"] ).
  • В долните таблици ще използвате за форматиране, определени за тази графа.
  • Ако имате Paginator, можете да изберете дали показва статистика за цялата таблица или само вижда в момента страница. Добави pagedTotals: true на columnStats обект за статистическите данни на страницата.
  • масив на "статистика" в конфигурационния обект може да включва обект литерали с "етикет" ключове и "бели". бел е функцията, която ще се изчисли статистика - или низ като "мин" или функция, която връща число. Примерът на GitHub показва как бихте могли да направите с помощта на "претеглят общо" данни от две колони.

Повече за действителният код разширение

Главният файл, YAHOO_DataTable_colStats.js, добавя няколко защитени имотите на DataTable, няколко защитени методи, както и две публични методи, colStatsRefresh който ще преизчисли и да се прекрои долния масата и colStatsGetRecordSet , който връща масив или на всички на данните, или само тези, които вижда, в зависимост от стойността на pagedTotals . Първият може да бъде полезно, ако правите промени в таблицата, която не огън полезни събития (например промяна на данни директно в основната записи), а втората, ако използвате потребителски функции резюме.

YAHOO_DataSource_patch.js добавя parseField(key, value) метод за източник на данни. Това е необходимо, когато сте виждаш вградени редактори клетка за числови данни, а редактор връща низ, който не е разделен на автоматично и така не могат да бъдат добавени. В parseField предоставя достъп до парсери, посочени в източник на данни, за да преобразувате промени данни.

YAHOO_util_Stats.js предвижда самостоятелен YAHOO.util.Stats класа, която тайно а (сортирани) набор от числови данни и предоставя обобщена статистика. Това е само зависимостта е YAHOO.lang. А например YAHOO.util.Stats се поддържа от DataTable за всяка колона, която е да бъдат обобщени, и кешира някои от по-трудно математика за подобряване на резултатите. Струните приет през на статистика масив ("мин.", "средна" и т.н.) са методи на класа YAHOO.util.Stats, така че лесно може да добавите допълнителни такива, като към прототип. Забележка обаче, че те само имат достъп до данните "своя" колоната.

И най-накрая

Аз съм сигурен, че това няма да работи с превъртане datatables, така че аз не съм дори да го опита! Но ако забележите някакви проблеми или имате идеи, не моля да ги пуснат на тракера GitHub въпрос.

За автора: Мат Паркър ( @ Lamplightdb на нервна възбуда ) е основател и разработчик на системи за бази данни светлина на лампа , малка компания, която предлага пълнофункционален уеб-базирана система за управление на организации с идеална цел в Обединеното кралство. Мат живее и работи в Северозападен Лондон.

Споделете и се удължи: Bookmark с del.icio.us | Digg тя! | Reddit!

Все още няма коментари »

RSS емисия за коментари по тази публикация. TrackBack URI

Оставете коментар

Забележка: Коментари са модерирани за първия работен ден. Спам заличава.

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Домакините от Yahoo!

Copyright © 2006-2011 Инк. Всички права запазени. Декларация за поверителност - Условия за ползване

Осъществено от WordPress на Yahoo! Уеб хостинг .