new net code behind asp agregar .net gridview datagrid repeater datarow

.net - code - asp net vb gridview add row



¿Completamente agregar fila a GridView/DataGrid/Repeater? (2)

Quiero crear una "tabla" que completará el usuario que tiene un número desconocido de filas.

Para ilustrarlo, digamos que es para ingresar los detalles de un recibo después de un viaje de compras, es decir, se desconoce el número de filas (o elementos).

Para lograr esto, quiero crear una grilla con una sola fila y dos columnas con cuadros de texto para ingresar el nombre y el precio del ítem:

+ ------- + --------- +
+ Artículo + Precio +
+ ------- + --------- +
+ Frijoles + 0.99 +
+ ------- + --------- +

Luego, después de que se haya completado la primera fila, quiero generar otra fila sobre la marcha, y así sucesivamente.

¿Cuál es el mejor control para esto? Soy bastante nuevo en asp.net, así que no estoy seguro de si debería usar un Gridview / DataGrid / Repeater o qué. (No estoy seguro de si tiene alguna relevancia, pero el elemento texbox tiene un Ajax AutoCompleteExtender asociado).

Cualquier sugerencia sería bienvenida.

EDITAR

Una cosa que olvidé mencionar es que GridView (o lo que sea) no tiene datos vinculados cuando se carga. No estoy seguro si eso afecta la decisión.


Las GridViews no son realmente buenas para agregar filas en línea. Probablemente tendrás que hacer algo un poco hacky. Es posible que pueda configurar la fuente de datos en su vista de cuadrícula para que siempre haya una fila más vacía al final de sus datos reales, y luego simplemente asegúrese de configurar la última fila en la cuadrícula para que esté en modo de edición. cada vez que la vista de cuadrícula finaliza el enlace. Entonces tendría que interceptar la acción Actualizar y hacer que en realidad sea Insertar en lugar de actualizar. Luego está la cuestión de si también desea permitir que el usuario edite filas existentes: cuando edite una fila existente, deberá eliminar la fila "vacía" porque no puede tener dos filas editables al mismo tiempo. Es complicado, pero probablemente puedas hacerlo.

La alternativa sería usar un repetidor para mostrar todas sus filas existentes en modo de solo lectura, y luego simplemente generar una fila editable al final.

No estoy seguro de cuál elegiría en este punto.


seguramente puede usar un repetidor, pero si identifica la estructura de los datos como una grilla (lo que significa que planifica o puede planear agregar nuevas columnas en el futuro, por ejemplo), un GridView es probablemente el mejor.