Advertisement
Ousterfort

Categorías vista index

Feb 6th, 2025
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.28 KB | Source Code | 0 0
  1. @model IEnumerable<ejemplo_crud_MVC_sqlServer.Models.Categoria>
  2.  
  3. @{
  4.     ViewData["Title"] = "Categorías";
  5. }
  6.  
  7. <!-- Mensajes de éxito y error -->
  8. @if (TempData["SuccessMessage"] != null)
  9. {
  10.     <div class="alert alert-success">
  11.         @TempData["SuccessMessage"]
  12.     </div>
  13. }
  14.  
  15. @if (TempData["ErrorMessage"] != null)
  16. {
  17.     <div class="alert alert-danger">
  18.         @TempData["ErrorMessage"]
  19.     </div>
  20. }
  21.  
  22. <div class="d-flex justify-content-between align-items-center">
  23.     <h2>Categorías</h2>
  24.     <!-- Botón para agregar una nueva categoría -->
  25.     <a asp-action="CrearOEditar" class="btn btn-success">Agregar Categoría</a>
  26. </div>
  27.  
  28. <!-- Tabla de categorías -->
  29. <table class="table table-striped">
  30.     <thead class="table-dark">
  31.         <tr>
  32.             <th>Nombre</th>
  33.             <th>Acciones</th>
  34.         </tr>
  35.     </thead>
  36.     <tbody>
  37.         @if (Model != null && Model.Any())
  38.         {
  39.             @foreach (var categoria in Model)
  40.             {
  41.                 <tr>
  42.                     <td>@categoria.nombreCategoria</td>
  43.                     <td>
  44.                         <!-- Botón para editar -->
  45.                         <a asp-action="CrearOEditar" asp-route-id="@categoria.idCategoria" class="btn btn-primary btn-sm">
  46.                             Actualizar
  47.                         </a>
  48.                         <!-- Botón para eliminar -->
  49.                         <button class="btn btn-danger btn-sm" onclick="eliminarCategoria(@categoria.idCategoria)">
  50.                             Eliminar
  51.                         </button>
  52.                     </td>
  53.                 </tr>
  54.             }
  55.         }
  56.         else
  57.         {
  58.             <tr>
  59.                 <td colspan="2" class="text-center">No hay categorías disponibles.</td>
  60.             </tr>
  61.         }
  62.     </tbody>
  63. </table>
  64.  
  65. <!-- Paginación -->
  66. <div class="d-flex justify-content-center mt-4">
  67.     @if (ViewBag.TotalPaginas > 1)
  68.     {
  69.         <ul class="pagination">
  70.             <!-- Primera página -->
  71.             <li class="page-item @(ViewBag.PaginaActual == 1 ? "disabled" : "")">
  72.                 <a class="page-link" href="@Url.Action("Index", new { pagina = 1, tamañoPagina = 10 })">Primera</a>
  73.             </li>
  74.  
  75.             <!-- Páginas anteriores y siguientes -->
  76.             @for (int i = 1; i <= ViewBag.TotalPaginas; i++)
  77.             {
  78.                 <li class="page-item @(ViewBag.PaginaActual == i ? "active" : "")">
  79.                     <a class="page-link" href="@Url.Action("Index", new { pagina = i, tamañoPagina = 10 })">@i</a>
  80.                 </li>
  81.             }
  82.  
  83.             <!-- Última página -->
  84.             <li class="page-item @(ViewBag.PaginaActual == ViewBag.TotalPaginas ? "disabled" : "")">
  85.                 <a class="page-link" href="@Url.Action("Index", new { pagina = ViewBag.TotalPaginas, tamañoPagina = 10 })">Última</a>
  86.             </li>
  87.         </ul>
  88.     }
  89. </div>
  90.  
  91. <!-- Modal para confirmar la eliminación -->
  92. <div class="modal fade" id="confirmDeleteModal" tabindex="-1" aria-labelledby="confirmDeleteModalLabel" aria-hidden="true">
  93.     <div class="modal-dialog">
  94.         <div class="modal-content">
  95.             <div class="modal-header">
  96.                 <h5 class="modal-title" id="confirmDeleteModalLabel">Confirmar Eliminación</h5>
  97.                 <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  98.             </div>
  99.             <div class="modal-body">
  100.                 ¿Estás seguro de que deseas eliminar esta categoría?
  101.             </div>
  102.             <div class="modal-footer">
  103.                 <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Cancelar</button>
  104.                 <button type="button" class="btn btn-danger" id="confirmDeleteButton">Eliminar</button>
  105.             </div>
  106.         </div>
  107.     </div>
  108. </div>
  109.  
  110. <!-- Script para confirmar la eliminación -->
  111. <script>
  112.     let modal;
  113.  
  114.     document.addEventListener('DOMContentLoaded', function() {
  115.         modal = new bootstrap.Modal(document.getElementById('confirmDeleteModal'));
  116.     });
  117.  
  118.     function eliminarCategoria(id) {
  119.         document.getElementById('confirmDeleteButton').onclick = function() {
  120.             window.location.href = '/Categorias/Eliminar/' + id;
  121.         };
  122.         modal.show();
  123.     }
  124. </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement