2011-10-23 32 views
7

Tôi đang điền một tiện ích chọn dijit với các tùy chọn bất cứ khi nào giá trị của một tiện ích con khác thay đổi.Lập trình thiết lập giá trị đã chọn của một dijit Chọn tiện ích

Trong ứng dụng của tôi, có menu thả xuống cho "Tuyến đường xe buýt" và menu thả xuống cho "Trạm dừng xe buýt". Người dùng đã chỉ định tuyến xe buýt và điểm dừng có thể cập nhật.

Vì vậy, khi trang tải lần đầu tiên, hộp thả xuống tuyến đường có tất cả các tuyến có sẵn và tuyến đường bạn hiện được chỉ định là giá trị đã chọn. Menu dừng được tải với tất cả các điểm dừng được kết hợp với tuyến đường đó, nhưng không có giá trị được chọn, vì vậy, theo mặc định, đó là tùy chọn đầu tiên.

Bất cứ khi nào người dùng thay đổi tuyến đường hiện được chọn, menu dừng sẽ thay đổi tương ứng và được điền với tất cả các điểm dừng được liên kết với tuyến đường đó.

Câu hỏi của tôi là, với dojo, làm cách nào tôi có thể đặt tùy chọn "Đã chọn" trong menu dừng?

Tôi muốn rõ ràng điểm nào hiện được chỉ định cho người dùng đó, thay vì điểm dừng "đã chọn" là tùy chọn đầu tiên trong tuyến đường.

Cảm ơn.

Trả lời

17
selectWidget.set("value", someValue); 

Nếu bạn đang xác định tùy chọn qua options tài sản (mảng các đối tượng với label, value, vv), sau đó someValue phải phù hợp với value của một trong những đối tượng. (Lưu ý rằng bạn cũng có thể chỉ định selected: true ngay trong một trong các đối tượng trong mảng truyền cho options.)

Nếu bạn đang cung cấp các mặt hàng từ một cửa hàng dojo.data qua store tài sản, sau đó someValue phải phù hợp với bản sắc của một các mặt hàng của cửa hàng.

(chỉnh sửa) LƯU Ý: Tôi giả định ở trên rằng "tiện ích chọn dijit" bạn đang đề cập đến dijit.form.Select. Nếu bạn đang thực sự sử dụng dijit.form.ComboBox hoặc dijit.form.FilteringSelect, cùng một dòng mã vẫn giữ đúng, như áp dụng cho các cửa hàng trong đoạn cuối cùng. Trong trường hợp instantiation declarative với một thẻ select, ComboBox và FilteringSelect vẫn tạo một cửa hàng, có các mục nhận dạng là giá trị của các tùy chọn trong thẻ chọn.

3
//With dojo version 1.9 
//search for the item in store dojo/store/Memory with the corresponding id value 
var objItem = store.get("1"); 
//set the combobox's item 
comboBox.set("item", objItem); 
+1

Đây chính xác là nơi tôi đang tìm kiếm! – GuyT

+0

Có cách nào để làm cho nó hoạt động với việc xóa một giá trị không? – streetlight

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