Je ne comprends pas ce que je fais mal ici! Je continue à recevoir une erreur de données. Mais j'ai validé le JSON et ça va ...YUI DataTable avec JSON et le filtrage côté client Erreur de données
Voici le javascript de l'exemple YUI Datatble (légèrement modifié).
<pre class="prettyprint"><code>
<script type="text/javascript">
YAHOO.util.Event.addListener(window, "load", function() {
//var Ex = YAHOO.namespace('example');
var dataSource = new YAHOO.util.DataSource("jsondb/json_meta_proxy.html",{
responseType : YAHOO.util.DataSource.TYPE_JSON,
responseSchema : {
resultsList: "records",
fields: [
{key:"idprojet"},
{key:"nomprojet"}
],
metaFields: {
totalRecords: "totalRecords"
}
},
doBeforeCallback : function (req,raw,res,cb) {
// This is the filter function
var data = res.results || [],
filtered = [],
i,l;
if (req) {
req = req.toLowerCase();
for (i = 0, l = data.length; i < l; ++i) {
if (!data[i].state.toLowerCase().indexOf(req)) {
filtered.push(data[i]);
}
}
res.results = filtered;
}
return res;
}
});
var cols = [
{key:"idprojet"},
{key:"nomprojet"}
];
var paginateur = new YAHOO.widget.Paginator({
rowsPerPage : 25,
pageLinks : 10
});
var conf = {
paginator : paginateur,
sortedBy: {key:'idprojet', dir:YAHOO.widget.DataTable.CLASS_ASC}
};
var dataTable = new YAHOO.widget.DataTable('tbl',cols,dataSource,conf);
var filterTimeout = null;
var updateFilter = function() {
// Reset timeout
filterTimeout = null;
// Reset sort
var state = dataTable.getState();
state.sortedBy = {key:'idprojet', dir:YAHOO.widget.DataTable.CLASS_ASC};
// Get filtered data
dataSource.sendRequest(YAHOO.util.Dom.get('filter').value,{
success : dataTable.onDataReturnInitializeTable,
failure : dataTable.onDataReturnInitializeTable,
scope : dataTable,
argument: idprojet
});
};
YAHOO.util.Event.on('filter','keyup',function (e) {
clearTimeout(filterTimeout);
setTimeout(updateFilter,600);
});
});
</script>
et voici les données JSON dans le fichier "jsondb/json_meta_proxy.html"
{
"recordsReturned": 1,
"totalRecords": 1,
"startIndex": 0,
"sort": "idprojet",
"dir": "asc",
"records": [
{
"idprojet": "11256",
"nomprojet": ""
}
]
}
Un grand merci pour votre aide !!!
@Eric Miraglia Bon travail chez YUI Team. Bien que j'utilise beaucoup les widgets YUI, votre "réponse" ressemble à un commentaire. Voir mon travail à propos de ** simple et double-clic ** en utilisant YUI DATATABLE http://jsbin.com/ideha Cela fonctionne bien –