目前正在使用Kendo界面AutoCompleteFor()
和ComboBoxFor()
帮助器。
注意到他们生成/渲染了一堆<li>
个。
如何为这些data-* attributes
添加其他自定义<li>
?
以下是当前情况:
IEnumerable<SelectListItem>
。Json(result, JsonRequestBehavior.AllowGet)
我的目标是为这些data-* attribute
生成行中的每一行添加一个或多个<li>
,以便我可以在onChange()
事件中获取这些数据*。
如何实现这一目标?
此外,我知道我可以创建自己的.Template()
并可能完成我的任务,但我很好奇,如果有人知道不同的方法,然后必须创建我自己的模板。
此致
答案 0 :(得分:0)
好的,我找到了解决方案;如果有人有兴趣,我会在这里分享。
我没有将获得的结果转换为IEnumerable<SelectListItem>
,而只是将其转换为IEnumerable<CustomDTO>
。
CustomDTO
类看起来像这样:
public class CustomDTO
{
public int Value { get; set; }
public string Text { get; set; }
public int Age { get; set; }
//Add whatever more properties you think you’ll need.
}
在我的控制器中,我会执行以下操作:
var result = _myService.GetData().ToList();
return Json(result, JsonRequestBehavior.AllowGet);
GetData()
返回IEnumerable<CustomDTO>
。
在我的视图中,我有一个AutoCompleteFor()
控件,我绑定了一个客户端
.Events(x => x.Select("onSelect")
事件处理程序。
处理程序的定义如下:
function onSelect(e)
{
if (e.item == null) return;
var dataItem = this.dataItem(e.item.index());
var valueAttribute = dataItem.Value;
var textAttribute = dataItem.Text;
var ageAttribute = dataItem.Age; //This is how I get my additional value
//...code...
}
就是这样。