Mira, yo he creado un componente que me crea una tabla dinámicamente, para usarla simplemente hago lo siguiente:
Código Javascript
:
Ver originalvar grid = new App.Grid({
id : "ejemplo",
columns : [
{header:"Nombre",dataIndex:"name",sortable:true},
{header:"Apellido",dataIndex:"lastname",sortable:true},
{header:"Edad",dataIndex:"age",sortable:true},
{header:"Email",dataIndex:"email",sortable:true}
],
stripeRows : true
});
grid.render("idDeUnElemento");
grid.load({
url : "serverside/cargarInformacion.php"
});
El JSON que regresa el servidor con la información a desplegar en el body sería algo así:
Si a algo así te refieres vas por buen camino! la idea es reutilizar componentes, hacerlos una sola vez y permitir crear nuevos con diferentes configuraciones.
Ahora, la parte interesante viene al hacer el componente, primero debes tener buenos conocimientos de POO, conceptos fundamentales de JavaScript, como es el scope, closures, eventos, etc..., el código que tengo del componente que te comento es semejante al siguiente:
Código Javascript
:
Ver originalvar App = {};
App.Grid = function(config){
//aplicar las configuraciones al objeto
//crear la tabla
this.createHeader();
this.createBody();
//si el usuario lo configura se renderiza la tabla desde el inicio
if(this.renderTo){
//ejecutar método render...
}
//se realiza la petición ajax si se configura el autoLoad = true
if(this.autoLoad){
this.load(config.url);
}
}
App.Grid.prototype = {
renderTo : false,
autoLoad: false,
render : function(where){
},
createHeader : function(){
},
load : function(url){
}
}
Mas o menos así es como lo tengo, te he dado una idea.
Saludos