2012-11-12 40 views
6

选择列表的项目,我在改变一些代码,我没有写的过程中,我相当新的剃须刀造型的MVC3

这是车辆的选择列表和代码看起来像这样的:

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

我的数据源中包含除Vehicleid和Vehiclenumber也Vehicletype,现在我想按类型来突出车辆,所以汽油车是蓝色和柴油的有绿色。

但我不知道如何去做这件事,任何帮助都非常感激。

+0

我猜数据绑定标签来自Knockout?你没有标签,但这是其中的选项。你想在Razor或Knockout中使用解决方案吗?使用剃须刀将需要您删除淘汰赛的约束力。 – Tyrsius

回答

1

所以,你的问题的代码具有挖空数据绑定在它的选项,所以我打算现在假设您正在使用淘汰赛作为数据源。要做到这一点,你将不得不展开一些绑定,这样你可以在每个选项上单独放置一个css-class。现在

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

,这取决于你的基因敲除视图模型的结构,但here is the fiddle我使用了这种方法。你应该能够适应它来适应你的。如果你想要一个只有Razor的解决方案,请告诉我。

+0

谢谢,我完全忘记了这一点。是的,你在正确的地方使用了Knockout。我没有意识到淘汰赛的存在,所以这对理解代码非常有帮助。 – barnonline