2013-03-08 26 views
5

Tôi muốn thực hiện một hộp chọn sử dụng <g:select/> rằng dịch để html này:Làm thế nào để thực hiện một hộp chọn với mục danh sách thường xuyên với g: chọn

<select id="myselect" name="myselect"> 
    <option value="r">RED</option> 
    <option value="g">GREEN</option> 
    <option value="b">BLUE</option> 
</select> 

Tôi cũng muốn giá trị được chọn trước từ một hạt đậu khi trang tải lại.

Tôi đang làm điều này bên trong vì vậy tôi có một bảng với mỗi hàng có một hộp tùy chọn riêng biệt.

Tôi hiện đang thực hiện điều này trong html dưới đây:

<g:each in=${mylist} status="i" var="myInst"> 
    <select id="status${myInst}" name="status${myInst}" data-id="${myInst.id}"> 
     <option value="r" <g:if test="${myInst.color == "r"}">selected</g:if>>RED</option> 
     <option value="g" <g:if test="${myInst.color == "g"}">selected</g:if>>Green</option> 
     <option value="b" <g:if test="${myInst.color == "b"}">selected</g:if>>BLUE</option> 
    </select> 
</g:each> 

bài này hoạt động tốt nhưng tôi muốn thay đổi điều đó xấu xí <select> vào <g:select>

Trả lời

8
<g:select id="myselect" name="myselect" value="${myInst.color}" 
      from="${['r': 'RED', 'g': 'GREEN', 'b': 'BLUE']}" 
      optionKey="key" optionValue="value" /> 
+2

Tuy nhiên, nếu bạn định làm như thế này, tôi khuyên bạn nên tạo thẻ "selectColor" bằng thẻ taglib. Cố gắng tìm ra nơi bạn đặt tất cả các hằng số phép thuật này khi chúng ở trong GSP là không tối ưu. Thêm vào đó, nó dễ dàng hơn nhiều để kiểm tra taglibs. – billjamesdev

-1

bạn phải khai báo "myselect" bên trong lớp miền của bạn. Tôi đã gặp rắc rối với điều này quá, nhưng tôi là khoảng 2 tuần trước bạn. xem how do I write a set for g:select tag

+0

câu trả lời của hmmm @ Andrew đã làm việc cho tôi ... – Anthony

+0

@Sharma câu trả lời của anh ấy đã làm việc vì "từ" của anh ta được nhúng vào trong câu lệnh . Đây không phải là cách bình thường khi sử dụng g: select. Thực tế, bạn không nhận được lợi ích gì khi sử dụng g: chọn trong tình huống này, nếu bạn chỉ muốn mã hóa câu lệnh select bên trong GSP của mình. Thông thường, bạn sẽ sử dụng g: select để truy xuất các mục "from" từ cơ sở dữ liệu hoặc các giá trị mã hóa cứng bên trong lớp miền của bạn (hoặc lớp ứng dụng). Không phải đề cập đến nó làm giảm khả năng đọc cho những người không sử dụng để grails –

+0

Tôi đang nhầm lẫn lý do tại sao điều này tiếp tục được downvoted. Có người nhận được rằng lười biếng mà họ chỉ downvote mà không giải thích bất cứ điều gì –

Các vấn đề liên quan