Podczas renderowania strony widoku, na podstawie pewnych warunków w działaniu kontrolera, chcę wyłączyć wszystkie kontrolki (pole tekstowe, pole wyboru, przycisk itp.) obecne w formularzu na stronie widoku MVC. Czy istnieje jakiś sposób, aby to zrobić? Proszę pomóż.Wyłącz wszystkie kontrolki (pole tekstowe, pole wyboru, przycisk itp.) W widoku (ASP.NET MVC)
Odpowiedz
można przekazać flagę do widoku, aby wskazać, że musi ona wyłączyć wszystkie kontrolki.
Oto przykład:
public ActionResult MyAction() {
ViewData["disablecontrols"] = false;
if (condition)
{
ViewData["disablecontrols"] = true;
}
return View();
}
W widoku (przy użyciu jQuery):
<script type="text/javascript">
$(document).ready(function() {
var disabled = <%=ViewData["disablecontrols"].ToString()%>;
if (disabled) {
$('input,select').attr('disabled',disabled);
}
})
</script>
Nie sądzę, że można to zrobić z kontrolera, ponieważ widok jest zwracany po zakończeniu wszystkich innych logiki. Prawdopodobnie możesz jednak coś zrobić z bibliotekami AJAX dołączonymi do ASP.NET MVC.
To naprawdę zależy od tego w jaki sposób kontrole są renderowane. W praktyce robimy coś podobnego, z wyjątkiem tego, że ustawiliśmy sterowanie tylko do odczytu. Pozwoli nam to ponownie wykorzystywać wyświetlenia (tylko do odczytu) i edytować widoki.
Sposób, w jaki osobiście poleciłbym to zrobić, to ustawienie flagi "tylko do odczytu", która jest ustawiona w widoku przy użyciu wartości w ViewData.
Stamtąd należy napisać kilka metod pomocniczych, aby odróżnić znaczniki wyłączone i niewłączone. Możesz zbudować ten znacznik samodzielnie lub zawinąć istniejące metody HtmlHelper, które zapewnia ASP.NET MVC.
// In your controller
ViewData["DisableControls"] = true;
<%-- In your view --%>
<% bool disabled = ViewData["DisableControls"] as bool; %>
...
<%= Html.TextBox("fieldname", value, disabled) %>
<%= Html.CheckBox("anotherone", value, disabled) %>
// In a helper class
public static string TextBox(this HtmlHelper Html, string fieldname, object value, bool disabled)
{
var attributes = new Dictionary<string, string>();
if (disabled)
attributes.Add("disabled", "disabled");
return Html.TextBox(fieldname, value, attributes);
}
Sposób, w jaki to zrobić jest użycie Page_Load(), tak jak w WebForms, aby wyłączyć kontrolę serwera. Zbudowaliśmy kilka niestandardowych kontroli serwera, aby obsłużyć nasze pola formularza. Było to w dzieciństwie ASP.NET MVC i nie polecałbym tego, ale jest to alternatywa.
- 1. Automatycznie wypełnij pole tekstowe asp.net
- 2. Wyłącz przycisk, gdy pole tekstowe jest pusty dynamicznie
- 3. Jak ustawić pole tekstowe jako pole wyboru w django
- 4. asp.net Walidator na pole tekstowe
- 5. Włącz/wyłącz przycisk wysyłania, jeśli pole wyboru jest zaznaczone/odznaczone?
- 6. Wyłącz wszystkie kontrolki w div w asp.net
- 7. Wyłącz przycisk Angularjs, jeśli pole wyboru jest zaznaczone
- 8. Jak utworzyć pole tekstowe wieloliniowe w asp.net mvc?
- 9. jquery włącz/wyłącz pole tekstowe na podstawie radiobuttonu
- 10. Pole tekstowe z "nową linią"
- 11. ASP.NET MVC 4 pole waluty
- 12. Django Pole wyboru wielokrotnego/pole wyboru Wybierz numer
- 13. Zaznacz pole wyboru ASP.NET z jQuery
- 14. Niereferowalne pole tekstowe
- 15. Nieeksportowalne pole tekstowe wxPython
- 16. Pole tekstowe - centrowanie tekstu
- 17. Arabskie pole tekstowe
- 18. Pole tekstowe z sugestiami rozwijanymi
- 19. Jak zrobić pole tekstowe jako nie edytowalny w asp.net (C#)
- 20. jquery ustawić wszystkie zaznaczone pole wyboru
- 21. MVC dodatkowo ukryte pole w formach łamiącym niestandardowych css pole
- 22. Wyświetl pole tekstowe po zaznaczeniu pola wyboru w obiekcie wizualnym
- 23. Jak dodać pole tekstowe wewnątrz listy wyboru w C#?
- 24. Ukryte pole Asp.Net Mvc z adnotacji danych
- 25. Jak utworzyć niestandardowy widok programowo w szybkich konieczności kontroli pole tekstowe, przycisk itp
- 26. Włącz/wyłącz pole tekstowe na podstawie zaznaczenia pola wyboru w WPF przy użyciu MVVM
- 27. asp: UpdatePanel z wyzwalaczem pole wyboru ASP.NET
- 28. Przełącz pole wyboru
- 29. Jak ograniczyć użycie inkoverlay microsoft w kontrolkach wejściowych, takich jak (pole tekstowe, pole wyboru)?
- 30. Jak wyczyścić pole tekstowe wyboru daty jQuery tylko do odczytu?
.............. jQuery rockz! –
To zadziałało dla mnie ... Dzięki – Ravi
Awesome Cheers - działa świetnie dla mnie dzięki! – wubblyjuggly