Tengo una tabla que contiene datos. En cada fila hay una casilla de verificación más una casilla de verificación para seleccionar todas las casillas de verificación en los encabezados. Al marcar esta casilla de verificación, las filas correspondientes se eliminarán de la tabla de la base de datos. Además, al cerrar la casilla de verificación en el encabezado, todas las filas se eliminarán de la tabla de la base de datos. ¿Cómo puedo lograr este asp.net mvc?eliminar filas de la tabla al marcar las casillas de verificación
Respuesta
Como siempre empezar con un modelo:
public class ProductViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}
Luego de un controlador:
public class HomeController : Controller
{
// TODO: Fetch this from a repository
private static List<ProductViewModel> _products = new List<ProductViewModel>
{
new ProductViewModel { Id = 1, Name = "Product 1" },
new ProductViewModel { Id = 2, Name = "Product 2" },
new ProductViewModel { Id = 3, Name = "Product 3" },
new ProductViewModel { Id = 4, Name = "Product 4" },
new ProductViewModel { Id = 5, Name = "Product 5" },
};
public ActionResult Index()
{
return View(_products);
}
[HttpPost]
public ActionResult Delete(IEnumerable<int> productIdsToDelete)
{
// TODO: Perform the delete from a repository
_products.RemoveAll(p => productIdsToDelete.Contains(p.Id));
return RedirectToAction("index");
}
}
Y, finalmente, el Index.aspx
vista:
<% using (Html.BeginForm("delete", "home", FormMethod.Post)) { %>
<table>
<thead>
<tr>
<th>Name</th>
<th>Select</th>
</tr>
</thead>
<tbody>
<%= Html.EditorForModel()%>
</tbody>
</table>
<input type="submit" value="Delete selected products" />
<% } %>
Y el editor de plantillas de productos (~/Views/Home/EditorTemplates/ProductViewModel.ascx
) :
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<ToDD.Controllers.ProductViewModel>" %>
<tr>
<td>
<%: Model.Name %>
</td>
<td>
<input type="checkbox" name="productIdsToDelete" value="<%: Model.Id %>" />
</td>
</tr>
Yo usaría AJAX. Al cambiar el estado comprobado, enviaría una solicitud para eliminar todos los ID seleccionados y actualizar los datos de la tabla.
significa que si se marca la casilla de verificación, se realizará una llamada ajax y se volverá a consultar la tabla y, una vez más, se marcará otra casilla de verificación para que ocurra lo mismo. –
@andrew Sullivan sí – thelost
Utilice jQuery
, alguna otra biblioteca de JavaScript o simplemente codifique manualmente una solicitud AJAX al marcar la casilla de verificación. Luego modifique el DOM
en caso de éxito.
Usando jQuery que podría hacer algo como:
<table>
<tr>
<td><input type="checkbox" class="check" id="1" /></td>
</tr>
<tr>
<td><input type="checkbox" class="check" id="2" /></td>
</tr>
<tr>
<td><input type="checkbox" class="check" id="3" /></td>
</tr>
</table>
$('.check').click(function() {
var tableRow = $(this).parent().parent();
var id = $(this).attr('id');
$.ajax({
url: 'http://www.YOURDOMAIN.com/Controller/Action/' + id,
success: function(data) {
$(tableRow).remove();
}
});
)};
Ésta es la aplicación muy básica, que podría vestir para arriba con un poco de animación en la eliminación de la fila. También necesita pasar datos y devolver datos con algún tipo de manejo de errores. Consulte aquí para obtener un jQuery AJAX tutorial.
esto es asp.net mvc. ¿Cómo debo pasar información al controlador, qué casillas están seleccionadas? –
probablemente con ID, publicaré una edición con la opción. Ver nueva URL e ID en la casilla de verificación. Sin embargo, analizaría un servicio web JSON, mucho más ligero y fácil de hacer. Además, funciona EXCELENTE con MVC ya que hay un tipo de acción 'JSONRESULT'. –
- 1. iterar sobre las filas/casillas de verificación en un RadGrid
- 2. ¿Manera rápida de marcar 2000 casillas de verificación en Javascript?
- 3. ¿Eliminar filas de MySql, o marcar "muerto"?
- 4. javascript seleccionar todas las casillas de verificación en una tabla
- 5. ¿Manera correcta de marcar todas las casillas de verificación en ListView?
- 6. Programemente recorro un DatagridView y marque las casillas de verificación
- 7. Cómo evitar que desaparezca JPopUpMenu al marcar casillas de verificación en él?
- 8. ¿Cómo puedo marcar las casillas de verificación en función de los valores?
- 9. Jquery marque las casillas de verificación
- 10. casillas de verificación jQuery
- 11. Si las declaraciones para Casillas de verificación
- 12. Marque/Desmarque todas las casillas de verificación
- 13. jquery seleccione todas las casillas de verificación
- 14. Desmarque todas las casillas de verificación en un ListView encargo
- 15. Desmarque todas las casillas de verificación
- 16. jQuery filtro de tabla con texto, casillas de verificación, selecciona
- 17. QTreeView Casillas de verificación
- 18. ExpandableListView y casillas de verificación
- 19. ¿Cómo marcar todas las casillas en forma actual con jquery?
- 20. HTML Las casillas de verificación en la lista de selección
- 21. Manipular, casillas de verificación de la lista
- 22. casillas de verificación de pirámide
- 23. ¿Cómo funcionan las casillas de verificación en Rails?
- 24. Desactivar todas las casillas de verificación dentro de una tabla con jquery
- 25. Rails 3: cómo guardar las casillas de verificación (no) marcadas?
- 26. JTree con casillas de verificación
- 27. Eliminar todas las filas de una tabla, arroja nullpointer
- 28. jquery marque casillas de verificación
- 29. Casillas de verificación en rieles
- 30. Alinear casillas de verificación (web)
Gracias Darin, funcionó. –
No entendí cómo se determina el valor de la casilla, ¿pueden explicarlo? Soy bastante nuevo en MVC y trato de resolverlo. Gracias. – Shimmy