Mam tabelę zawierającą dane. W każdym rzędzie znajduje się pole wyboru oraz pole wyboru, aby zaznaczyć wszystkie pola wyboru w nagłówkach. Po zaznaczeniu tego pola wyboru korespondujące wiersze mają zostać usunięte z tabeli bazy danych.Plus, po zaznaczeniu pola wyboru w nagłówku wszystkie wiersze zostaną usunięte z tabeli bazy danych. Jak mogę osiągnąć ten asp.net mvc.usuwanie wierszy tabeli przy sprawdzaniu pól wyboru
Odpowiedz
Jak zawsze zaczynać się od modelu
public class ProductViewModel
{
public int Id { get; set; }
public string Name { get; set; }
}
następnie Kontroler:
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");
}
}
i wreszcie Index.aspx
widok:
<% 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" />
<% } %>
a szablonu edytora produkt (~/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>
Używałbym AJAX. Po zmianie stanu sprawdzenia wysłałbym żądanie usunięcia wszystkich wybranych identyfikatorów i odświeżenia danych tabeli.
oznacza, że w przypadku zaznaczenia pola wyboru nastąpi wywołanie ajaxu, a tabela zostanie ponownie przesłana, a następnie ponowne sprawdzenie innego pola wyboru ponownie spowoduje to samo. –
@andrew Sullivan tak – thelost
Użyj jQuery
, innej biblioteki javascript lub po prostu ręcznie zakoduj żądanie AJAX przy sprawdzaniu pola wyboru. Następnie zmień DOM
w przypadku sukcesu.
jQuery można zrobić coś takiego:
<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();
}
});
)};
Jest to bardzo proste wdrożenie, można ubierać ją z pewnym animacji w usunięciu wiersza. Konieczne jest również przekazywanie danych i zwracanie danych z pewną obsługą błędów. Sprawdź tutaj, aby uzyskać jQuery AJAX tutorial.
to jest asp.net mvc. W jaki sposób powinienem przekazać informacje do kontrolera, które pola wyboru są zaznaczone. –
prawdopodobnie z identyfikatorem, opublikuję opcję edycji z opcją. Sprawdź pole wyboru nowego adresu URL i ID. Chciałbym jednak zajrzeć do usługi internetowej JSON, znacznie lżejszej i łatwiejszej do zrobienia. Plus działa GREAT z MVC, ponieważ istnieje typ akcji 'JSONRESULT'. –
- 1. Usuwanie wierszy tabeli w javascript
- 2. Usuwanie zduplikowanych wierszy z tabeli
- 3. Dynamiczne dodawanie i usuwanie wierszy tabeli - Android
- 4. Usuwanie zduplikowanych wierszy z tabeli BigQuery
- 5. AngularJS: Zapobieganie sprawdzaniu ukrytych pól formularzy
- 6. Dodawanie pól wyboru do każdego wiersza w tabeli MVCcontrib
- 7. Walidacja dla wyboru pól wyboru?
- 8. Usuwanie wszystkich wierszy z tabeli za pomocą JPA
- 9. Znajdź indeks wierszy tabeli przy użyciu jQuery
- 10. Usuń wiele wierszy, zaznaczając pola wyboru przy użyciu PHP
- 11. Usuń wiele wierszy z tabeli przy użyciu identyfikatora w MySQL
- 12. usuwanie wierszy z SELECT na podstawie kolumn w innej tabeli
- 13. jQuery nie będzie zaznaczać pól wyboru
- 14. Usuwanie zduplikowanych wierszy
- 15. jQuery: usuwanie wierszy w DataTables
- 16. Wybierz dane z wielu tabel w MySQL przy użyciu pól wyboru i pokaż pole tabeli według pola wyboru
- 17. Jquery uzyskać wartości wiersza tabeli z wybranymi wyboru
- 18. Używanie pól wyboru i wymaganych przy użyciu AngularJS
- 19. Wyświetl listę zaznaczonych pól wyboru w div przy użyciu jQuery
- 20. Jak zastosować znaczniki przy użyciu acts_as_taggable_on, używając pól wyboru?
- 21. iterację pól wyboru w Kolby
- 22. zaznaczenie wszystkich pól wyboru jquery
- 23. Siatka pól wyboru w WPF
- 24. tags_as_taggable_on i znaczniki pól wyboru
- 25. Usuwanie duplikatów z dużej tabeli
- 26. Dynamicznie odświeżanie wierszy w tabeli HTML przy użyciu UpdatePanel
- 27. SQLITE - usuwanie wierszy z łączeniem wewnętrznym?
- 28. usuwanie wierszy z pliku Excel przy użyciu C#
- 29. Usuwanie podziałów wierszy w Ruby
- 30. Usuwanie duplikatów wierszy w vi?
Dzięki Darin, zadziałało. –
Nie rozumiem, jak jest określona wartość tego pola wyboru, czy możesz wyjaśnić? Jestem całkiem nowy dla MVC i próbuję to rozgryźć. Dzięki. – Shimmy