2012-07-26 19 views
6

Mam atrybut o nazwie status w mojej domenie, która jest String typ może mieć jeden z dwóch wartości Applied , NotAppliedGrails -Gsp - Jak zrobić check-box sprawdzone na podstawie wartości pola

Mam dwie czek pola do wprowadzenia tej wartości. na mojej stronie edycji chcę wyświetlić te dwa pola wyboru.

Jeśli wartość status to Applied, należy zaznaczyć odpowiednie pole wyboru.

mój kod

<g:message code="publicRuleInstance.course.label" default="Applied" /> 
<g:checkBox name="status " value="${publicRuleInstance?.status }" /> 

<g:message code="publicRuleInstance.course.label" default="NotApplied" /> 
<g:checkBox name="status " value="${publicRuleInstance?.status }" /> 

ale tutaj oba pola wyboru są zaznaczone.

musi istnieć sposób sprawdzenia wartości, tj. Jeśli status = Zastosowany, to pole wyboru pertikularne musi zostać zaznaczone, należy odznaczać.

Czy jest jakiś sposób na zrobienie tego?

Odpowiedz

4

użyć atrybutu checked kontrolować stan swojego pole wyboru, jak to opisano w docs. Tu można dodać dowolne wyrażenie w celu określenia stanu g:checkBox:

<g:message code="publicRuleInstance.course.label" default="Applied" /> 
<g:checkBox name="status " value="Applied" checked="${publicRuleInstance?.status == 'Applied'}"/> 

<g:message code="publicRuleInstance.course.label" default="NotApplied" /> 
<g:checkBox name="status " value="NotApplied" checked="${publicRuleInstance?.status == 'NotApplied'}"/> 

Jeśli tylko chcesz, aby jeden z tych wartości - AppliedlubNotAppliedg:radioGroup byłoby lepszym wyborem. Za pomocą pola wyboru użytkownik może wybrać obie wartości: Applied i NotApplied.

2

Wartość pole wyboru powinno być logiczna

<g:message code="publicRuleInstance.course.label" default="Applied" /> 
<g:checkBox name="status " value="${publicRuleInstance?.status =="Applied"}" /> 

<g:message code="publicRuleInstance.course.label" default="NotApplied" /> 
<g:checkBox name="status " value="${publicRuleInstance?.status == "NotApplied" }" /> 
+0

Czy istnieje reguła twardego kodu, która mówi, że checkBox powinien mieć wartość boolowską? – maaz

+0

Nie - 'g: checkBox' może mieć dowolną wartość. – aiolos

+1

Logiczne jest, że wartość pola wyboru powinna być wartością logiczną. Inne pytanie brzmi, jak groovy będzie analizować wartość, którą przechodzisz. http://groovy.codehaus.org/Groovy+Truth –