2009-04-09 32 views
13

¿Existe algo como esto?JQuery GridView control

Lo que estoy buscando es un control que vaya a ser del lado del cliente, con las capacidades Editar, Cancelar fila de un GridView.

Deseo utilizarlo para recopilar los datos del usuario y luego guardarlos en el servidor una vez que el usuario haya terminado de ingresar los datos.

EDITADO:

Gracias por todas las recomendaciones. Una cosa que me gustaría preguntarles a todos ustedes antes de profundizar y dedicar tiempo a aprender estos marcos.

Parece que todos ustedes usan ASP.net MVC y mencionan que estos kits de herramientas son buenos con esto. Sin embargo, estoy usando formularios web ASP.net. ¿Estos marcos funcionan bien con el viejo sabor de ASP.net?

Respuesta

6

Sí. jqGrid funciona bien. Pruebe the demos. Lo usamos con ASP.NET MVC.

Actualización: En su pregunta actualizada, ha preguntado sobre el uso de marcos como jQuery con WebForms. ¿Puedes hacer esto? Por supuesto. ¿Te gustaría? Esa es una pregunta más difícil. En WebForms, generalmente deja que WebForms genere JavaScript para usted. Es por eso que tienes UpdatePanel y similares. Por un lado, esto es fácil, porque puedes enfocar tu atención de codificación en C#, y puedes usar componentes de cuadrícula que no requieren que escribas ningún JavaScript para que funcionen. Por otro lado, está limitado a lo que puede hacer el código generado. Sí, puede escribir JavaScript manualmente, incluso en WebForms, pero debe solucionar algunas de las cosas que hace el framework, como cambiar los ID en los controles. Sí, puede escribir manejadores de eventos en C#, pero esto requiere el uso de devoluciones, que no encajan naturalmente en HTTP, con consecuencias que son visibles para el usuario final.

Es común usar jQuery con ASP.NET MVC en gran medida porque se envía con el marco. Pero incluso antes de que eso sucediera, todavía era muy común usar los dos juntos porque jQuery hace que sea muy fácil hacer cosas que de otra manera no son compatibles directamente con ASP.NET MVC, como hacer que los controles en una página interactúen entre sí. Sí, esto significa que tienes que escribir JavaScript, pero mientras estés de acuerdo con eso, obtienes la gran ventaja de poder escribir cualquier tipo de interacción que desees sin tener que volver a escribir en el servidor.

Si solo busca un buen control de cuadrícula para WebForms, le sugiero que utilice un control diseñado para WebForms, en lugar de una cuadrícula diseñada para jQuery. La razón es que el código que escribirás se ajustará más naturalmente a los modismos de WebForms.

Si solo quieres aprender jQuery, bueno, esa es una muy buena idea, porque el marco es interesante, útil y bien diseñado, pero no estoy seguro de que un buen control sea el mejor lugar para comenzar. Un mejor lugar para comenzar podría ser agregar un toque visual a algunas de sus páginas existentes. Es más fácil comenzar con HTML conocido y manipularlo con jQuery que generar HTML nuevo y aprender jQuery al mismo tiempo.

+0

¿es accesible desde el servidor? significado: ¿puedo recoger valores de la cuadrícula en mi código C#? – sarsnake

+0

no está conectado automáticamente al servidor. Estoy usando la versión alfa actual, hice un montón de modificaciones/extensiones yo mismo. No es demasiado difícil de conectar, realmente fácil de usar con las acciones de JsonResult en el marco de MVC. – Tracker1

+0

¿Quiere decir, por ejemplo, puede publicar ediciones en el servidor? Sí, pero jQuery, por supuesto, no tiene conocimiento de las devoluciones de ASP.NET. Entonces no a través de un evento ASP.NET. El "guardar" será un POST por separado. –

1

Según su comentario (en la mención de Craig de jqGrid), o bien va a querer ir con jqGrid, FlexiGrid u otra alternativa del lado del cliente, y conectarlo usted mismo desde el servidor, o estará mejor. con un componente comercial de cuadrícula ajax no basado en jquery.

Si está utilizando MVC (como Menciones de Craig), jqGrid es un ajuste bastante agradable.Es bastante fácil conectar los eventos jqGrid a las acciones del controlador JsonResult en MVC.

+0

Gracias :) no, no estoy usando MVC. Estamos usando formularios ASP.net. Actualmente estoy usando un GridView (control asp.net) y estoy interesado en experimentar con más desarrolladores del lado del cliente para mejorar la experiencia del usuario. – sarsnake

8

marcos del lado del cliente

Además de jqGrid, hay otros tipos de parrillas marco de JavaScript que he estado jugando con recientemente:

  1. Flexigrid: basado en jQuery, sin funciones de edición aún, pero planificadas.

  2. Ext's GridPanel: Ext JS es otro marco javascript que interfaces con jQuery.

  3. YUI's DataTable: El usuario Yahoo Interface (YUI) es otra marco con un editable control de cuadrícula .

Todos estos son componentes del lado del cliente: funcionan en el navegador del usuario, desconectados del código del servidor. Al igual que Tracker1 y muchos otros, debe escribir los métodos Ajax para conectar la red del lado del cliente al servidor o puede intentar aprovechar las envolturas existentes, como:

Opciones del lado del servidor

  1. Coolite's Ext wrappers for .NET

  2. Una de las bibliotecas de envoltura YUI .NET en curso (YuiDotNet o Yui.NET). No creo que ninguno de estos implemente un contenedor para DataTable todavía, pero pueden mostrarte la forma de hacerlo.

Conexión del cliente y el servidor

Si usted no ha trabajado con una gran cantidad de Ajax o hecho mucho con estos marcos de JavaScript, estar preparado para un poco de una curva de aprendizaje: como usted Comience a usarlos, tendrá que tener en cuenta constantemente lo que está sucediendo en el servidor y lo que está sucediendo en el cliente (¡y cuándo!).

Si utiliza una de las bibliotecas de JavaScript directas que he enumerado anteriormente, en lugar de un contenedor .NET, tendría que escribir un método del lado del servidor para manejar el envío de datos y exponerlo al cliente utilizando su elección tecnología (acciones del controlador JsonResult de MVC, establecimiento de WebMethods/ScriptMethods, etc.).

Stack Overflow Questions relacionada

Using ExtJS in ASP.NET y Returning data from ASP.net to an ExtJS Grid - éstos se centran en los controles de Ext, pero las respuestas contiene una gran cantidad de buena información general sobre la conexión de la nueva generación de controles marco Javascript para aplicaciones de servidor.

Good Asp.Net excel-like Grid control - puede que también le interesen las respuestas a esta pregunta, especialmente porque parece que desea capacidades de edición sólidas.

+0

Gracias! ¡Guauu! sobrecarga de información :) Estaba mirando las envolturas Ext de Coolite para .NET y no veo GridView allí, pero cosas como PropertyGrid y DataView ..... Asumo que esto podría ser el truco. Gracias de nuevo, tendré que revisarlos y tomar una decisión. – sarsnake

0

Puede probar mi libre WebGrid DataGrid que utiliza jQuery y es JQuery ThemeRoller-Ready

3

Actualmente uso DataTables. Esto le permite crear una tabla html y aplicar filtros para columnas múltiples, géneros de varias columnas, paginación, etc. Tiene la opción para la mapeo del lado del cliente de una tabla html o para recibir los datos de una fuente AJAX.

También tiene una API para agregar dinámicamente filas, mostrar columnas dinámicamente y agrupar.

0

jsGrid es un peso ligero plugin de jQuery GridView js-grid.com

Es muy personalizable y se puede utilizar con cualquier fuente de datos.

Cuestiones relacionadas