我在局部视图中使用了Kendo MultiSelectFor。此局部视图动态呈现这些多选项,因此它们的名称也是动态的。我有兴趣在更改事件触发时获取id但似乎是一项相当困难的任务
我的多选列表如下
@(Html.Kendo().MultiSelectFor(x => x.Widget.lstParameters[j].SelectedItems)
.Name("widget-multiselectvalue-" + j)
.BindTo(new MultiSelectList(Model.Widget.lstParameters[j].MSLDropDownList, "Value", "Text"))
.Placeholder("--Please Select--")
.HtmlAttributes(new { @class = "check-if-change" })
.Events(e => e.Change("widget.msl_change"))
)
以下是我的msl_change事件
msl_change: function (e) {
//var mslid = $(this)[0].id;
}
在查看e.sender时,它的_tagID非常接近多选列表的id。我可以操纵这个标签id来获得所需的部分,但我真的想避免这种黑客攻击。 e.sender的屏幕截图如下
答案 0 :(得分:0)
你非常接近 - 事件的发件人属性是Kendo MultiSelect的一个实例。 Kendo实例有一个名为" element"的属性。它包含对DOM元素的引用。知道这一点,您可以使用以下代码访问更改处理程序中的ID:
var id = $(e.sender.element).prop("id");
或者,使用已注释掉的代码中的语法:
var id = $(e.sender.element)[0].id
或者,只是为了好的措施......:
$(e.sender.element).get(0).id