2012-11-12 72 views
6

Tôi đang trong quá trình thay đổi một số mã mà tôi không viết và tôi khá mới với RazorTạo kiểu danh sách lựa chọn trong mvc3

Đó là danh sách lựa chọn các loại xe và mã trông giống như này:

<select name="selectVehicle" class="cls_vehicles" data-bind="options:  $root.vehicles,optionsCaption:$root.noVehicleText, optionsText:  'VehicleNumber',optionsValue: 'VehicleID',value: VehicleID"><option value=""/></select> 

nguồn dữ liệu của tôi chứa bên cạnh Vehicleid và Vehiclenumber cũng là một Vehicletype, và bây giờ tôi muốn làm nổi bật những chiếc xe theo loại, do đó xe xăng có màu xanh và những động cơ diesel là màu xanh lá cây.

Nhưng tôi không biết làm cách nào để giải quyết vấn đề này, mọi trợ giúp đều được đánh giá rất cao.

+0

Tôi đoán rằng thẻ ràng buộc dữ liệu là từ Knockout? Bạn không có thẻ cho nó, nhưng đó là nơi nó kéo các tùy chọn từ đó. Bạn có muốn giải pháp trong Razor hoặc Knockout không? Sử dụng dao cạo sẽ yêu cầu bạn loại bỏ ràng buộc loại trực tiếp. – Tyrsius

Trả lời

1

Vì vậy, mã câu hỏi của bạn có một ràng buộc dữ liệu loại trực tiếp cho các tùy chọn trong đó, vì vậy tôi sẽ giả sử bây giờ bạn đang sử dụng Knockout làm nguồn dữ liệu. Để làm điều này, bạn sẽ phải mở rộng ràng buộc một chút, để bạn có thể đặt một lớp css trên mỗi tùy chọn riêng lẻ.

<select data-bind="value: selectedCar, foreach: cars"> 
    <option data-bind="css: { carDiesel: isDiesel, carGas: isGas }, text: name"></option> 
</select>​ 

Bây giờ, điều này phụ thuộc vào cấu trúc của chế độ xem loại trực tiếp của bạn, nhưng here is the fiddle Tôi đã sử dụng phương pháp này. Bạn sẽ có thể điều chỉnh nó để phù hợp với bạn. Nếu bạn muốn có giải pháp chỉ dành cho Razor, hãy cho tôi biết.

+0

Cảm ơn bạn, tôi hoàn toàn quên theo dõi điều này. Có bạn, nơi chính xác, nó đã được sử dụng Knockout. Tôi đã không nhận thức được sự tồn tại của loại trực tiếp nên nó là một trợ giúp rất lớn để hiểu mã. – barnonline

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