Loading...
svetlio_vd avatar svetlio_vd 3 Точки

Съвет за MVC Framework checkbox disabled опция

Колеги, моля ви за съвет как да походя с едно checkbox поле в APS .NET Core проект. Следният сценарии :

Имаме полета за име и ЕГН на клиент, които се отключват за редакция, когато CheckBoxFor полето е маркирано. Когато полето е размаркирано, текстовите полета са заключени и не позволяват редакция. Когато бланката е приключена, всички полета (в това число и чекбокса) трябва да бъдат заключени. Това се постига лесно, с булева зависимост, която кара чекбокса да изпадне в състояние disabled.

Проблемът е, че MVC Framework-а праща false стойност за чекбокса при последващ save на промени по клиента (освен име и ЕГН, има и други полета, които си стоят постоянно отворени за редакция), въпреки че визуално, а и в базата данни, стойността на чекбоса е true. Тоест ако дадено поле в disabled, framework-а праща false стойност до сървъра, при post. Четох за проблема няколко часа днес по разнородни сайтове и форуми, но не намерих конкретно решение. Не мога да ползвам drop down list, нито radio бутони - трябва да е checkbox и то checkboxfor, който е мапнат към едно property на клиента.

Опитвах какви ли не хитрости - през javascript-а, през контролера...все нещо се чупи и не работи както се очаква.

редакция : А, и още нещо - за съжаление checkbox-а няма опция "readonly" като другите полета.

Благодаря Ви!

Тагове:
0
C# MVC Frameworks - ASP.NET 25/05/2018 22:37:55
svetlio_vd avatar svetlio_vd 3 Точки

Реших проблема онзи ден - не е много изискано, но работи по следния начин :

във View-то има една if-else конструкция - като една булева променлива (без значение каква) е изпълнена, модела прави render на checkbox-а в state enabled, той си е мапнат към пропъртито и си индикира дали е цъкнат или не е.

Ако булевата променлива не е изпълнена, checkbox-а се визуализира disabled, отново мапнат с пропъртито, но се "ренди" и едно HiddenFor поле, мапнато към същото пропърти като чекбокса, но с друго id спрямо checkbox-а. Така api-то чете статуса на чекбокса коректно, дори когато е в статус disabled.

Същото нещо направиш и за 2 текстови полета и един select list, макар че при тях има опция и за readonly.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.