Quick Edit-modus voor YUI 3 DataTable
19 april 2011 om 15:20 door John Lindal | In Ontwikkeling , YUI 3 Galerij | 1 ReactieOok al YUI 3 DataTable heeft nog geen inline editing van individuele cellen, is het relatief eenvoudig te implementeren Quick Edit-modus. De QuickEdit plugin voor DataTable in de YUI 3 Galerij maakt het mogelijk alle zichtbare waarden in een DataTable gelijktijdig te bewerken.
( Klik op de screenshot om te spelen met dit voorbeeld .)
Overzicht
Net als bij de YUI 2 versie , de kerngedachte van Quick Edit-modus is om te wisselen alles uit de cel formatteerders door nieuwe, die de cellen vullen met vormelementen, bijvoorbeeld invoervelden of dropdowns. Dit gebeurt wanneer start() wordt genoemd, afhankelijk van de configuratie hieronder beschreven. Nadat de gebruiker klaar is, kunt u bellen getChanges() om de gewijzigde waarden te krijgen en dan ze volharden. Om Quick Edit-modus te verlaten, bel cancel() . (Het is genoemd opzeggen
in plaats van stoppen
om u eraan te herinneren dat het alle wijzigingen verwijdert.)
Omdat de Quick Edit galerie module is een plugin voor DataTable, moet je aan te sluiten op uw DataTable voordat u het kunt gebruiken:
my_table.plug (Y.Plugin.DataTableQuickEdit);
Dit slaat de plug-in in de qe lid van de DataTable, dus je moet de plugin functies aan te roepen als volgt uit:
my_table.qe.start ();
Configuratie
Quick Edit voegt twee nieuwe configuratie attributen om alle kolommen: quickEdit en qeFormatter .
Als een kolom quickEdit eigenschap is gedefinieerd, zal de kolom worden bewerkt in de Quick Edit-modus. Als u alle standaardinstellingen te accepteren, kun je gewoon instellen quickEdit:true . Voor meer controle, dan kunt u een object passeren met de volgende eigenschappen:
-
formatter De cel formatter die een passende vorm veld zal maken: <input type="text">, <TEXTAREA> of <select>. Standaard is de cel formatter
Y.Plugin.DataTableQuickEdit.textFormatterwordt gebruikt voor alle cellen in te voeren elementen te produceren. Om een te krijgentextareaelement, het configureren van een kolom te gebruikenY.Plugin.DataTableQuickEdit.textareaFormatterplaats.-
validation Validatie configuratie voor elk veld in de kolom.
-
css CSS-klassen coderen basis validatieregels:
-
yiv-required De waarde moet niet leeg zijn.
-
yiv-length:[x,y] String ten minste
xtekens en ten hoogsteytekens. Ten minste een van x en y worden gespecificeerd.-
yiv-integer:[x,y] De geheel getal moet ten minste
xen maximaaly.xenyzijn ook mogelijk.-
yiv-decimal:[x,y] De decimale waarde ten minste
xen maximaaly. Exponent niet toegestaan.xenyzijn ook mogelijk.
-
-
fn Een functie die zal met de DataTable worden genoemd als de draagwijdte en de cel vorm element als het argument. Terug true wanneer de waarde geldig is. Anders bel
this.displayMessage(...)een fout weer te geven en terug te keren vals.-
msg Een kaart van typen van berichten die worden weergegeven wanneer een basis-of regex validatieregel mislukt. De geldige types zijn:
required,min_length,max_length,integer,decimal, enregex. Er is geen standaard voor typeregex, dus je moet een bericht te geven of u het configureren van een regex validatie. De standaard foutmeldingen van de andere soorten worden opgeslagen inY.FormManager.Strings(verzorgd door galerie-formmgr-CSS-validatie ) en kan worden overschreven en / of gelokaliseerd.-
regex Reguliere expressie die de waarde moeten voldoen om geldig te maken.
-
Soms moet een niet-bewerkbare kolom anders worden gemaakt tijdens de Quick Edit-modus. Het beste voorbeeld is een kolom met daarin een link, want navigeren uit de buurt van de pagina, terwijl in de Quick Edit modus kan rampzalig zijn. Om de koppeling te verwijderen tijdens Quick Edit, configureren qeFormatter voor de kolom te zijn Y.Plugin.DataTableQuickEdit.readonlyLinkFormatter . Voor e-mailadressen, te gebruiken Y.Plugin.DataTableQuickEdit.readonlyEmailFormatter . U kunt ook schrijven je eigen, aangepaste, alleen-lezen formatter. Volg gewoon de normale regels voor de bouw van een DataTable cel formatter.
Ontbrekende functies
Door een bug in YUI 3.3.0 DataTable , de td element doorgegeven aan een kolom formatter is eigenlijk van de vorige kolom. Dit maakte het te lastig om af
te ondersteunen kopie,
waar een knop op de eerste rij kunt u kopieert u de waarde naar beneden om alle andere rijen.
De bug ook verplicht een volledige herwerking van de basis-Quick Edit cel formatters om tekst terug te keren in plaats van het manipuleren van de DOM. Dit is de reden waarom op maat cel formatters worden niet officieel ondersteund in deze eerste release. Als u avontuurlijk bent aangelegd, kunt u nog steeds op te bouwen, maar houd er rekening mee dat u nodig hebt om ze te herschrijven, waaronder het toevoegen van ondersteuning voor kopiëren naar beneden,
nadat de bug in DataTable is vastgesteld.
Delen en uit te breiden: Bookmark met del.icio.us | Digg it! | reddit!
1 Reactie
Sorry, het reactieformulier op dit moment gesloten.

Copyright © 2006-2012 Yahoo! Inc Alle rechten voorbehouden. Privacy Policy - Gebruiksvoorwaarden
Powered by WordPress op Yahoo! Web Hosting .


Dankzij de galerie-patch-340-DataTable-formatter, de YUI 3.4.0 versie van gallery-QuickEdit biedt nu "kopiëren down" functionaliteit.
Reactie door John Lindal - 23 augustus 2011 #