我的ASP.NET MVC-3应用程序正在使用previous version的Telerik MVC Extensions combobox。我正在尝试更改列表中项目的样式。
以下是模型:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public bool DisplayBold { get; set; }
public string Value
{
get
{
return string.Format("{0}|{1}", this.Id, this.DisplayBold.ToString());
}
}
}
控制器:
var people = new List<Person>();
people.Add(new Person { Id = 1, Name = "John Doe", DisplayBold = true });
people.Add(new Person { Id = 2, Name = "Jayne Doe", DisplayBold = false });
ViewData["people"] = people;
return View();
Combobox:
<% Html.Telerik().ComboBox()
.Name("ComboBox")
.BindTo(new SelectList((IEnumerable<Person>)ViewData["people"], "Id", "Name"))
.ClientEvents(events => events
.OnChange("ComboBox_onChange")
.OnLoad("ComboBox_onLoad")
.OnOpen("ComboBox_OnOpen"))
.Render();
%>
我尝试了以下内容并确实更改了第一项:
var item = combobox.dropDown.$items.first();
item.addClass('test');
然而,当我尝试在Ture时更改CSS时:
var combobox = $(this).data('tComboBox');
$.each(combobox.dropDown.$items, function (idx, item) {
if (combobox.data[idx].Value.split('|')[1] == 'True') {
alert(item);
$(item).addClass('test');
}
});
它不起作用!
答案 0 :(得分:0)
我正在重写my previous answer并浏览论坛标记为my old revision的用户373721作为答案。
对不起,我searched the forum of telerik看看如何挂钩数据绑定以影响css。我找不到与你的问题很好的匹配。
一个泥泞的解决方法(在这里绝望)可能是将html添加到应该以粗体显示的名称:
public class Person
{
public string NameText { get; }
{
get
{
if(this.DisplayBold) {
return "<b>" + this.Name + "</b>";
} else
return this.Name;
}
}
}
因此,不是绑定到Name,而是绑定到NameText。 您可能需要处理html转换。
在my last search我找到a post that may help。现在我发现了a post that could be from you