2012-11-12 2 views
6

Ich bin in den Prozess einige Code zu verändern, die ich schrieb nicht, und ich bin ziemlich neu zu RazorStyling von Select Artikel in MVC3

Es ist eine ausgewählte Liste der Fahrzeuge und der Code wie folgt aussieht dies:

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

Meine Datenquelle enthält neben VehicleID und Fahrzeugnummer auch eine Vehicletype, und jetzt will ich die Fahrzeuge markieren nach Art, so dass die Fahrzeuge mit Benzinmotor ist blau und die Diesel diejenigen grün sind.

Aber ich habe keine Ahnung, wie das geht, jede Hilfe wird sehr geschätzt.

+0

Ich vermute, dass Data-Bind-Tag stammt aus Knockout? Sie haben kein Tag dafür, aber das ist, wo es die Optionen auszieht. Willst du die Lösung in Razor oder Knockout? Wenn Sie einen Rasierer verwenden, müssen Sie die Knockout-Bindung entfernen. – Tyrsius

Antwort

1

Also, Ihr Frage-Code hat eine Knockout-Datenbindung für die Optionen darin, also gehe ich davon aus, dass Sie Knockout als Datenquelle verwenden. Dazu müssen Sie die Bindung ein wenig erweitern, so dass Sie für jede Option einzeln eine CSS-Klasse platzieren können.

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

Nun hängt dies von der Struktur Ihres Knockout Viewmodel, aber here is the fiddle Ich habe mit dieser Methode. Sie sollten in der Lage sein, es an Ihre Bedürfnisse anzupassen. Wenn Sie nur eine Razor-Lösung wünschen, lassen Sie es mich wissen.

+0

Danke, ich habe ganz vergessen zu folgen. Ja, Sie waren richtig, es war Knockout. Ich war mir der Existenz von Knockout nicht bewusst, daher war es eine große Hilfe, den Code zu verstehen. – barnonline