所以我在一个可重用的局部视图中有一个ComboBox。当我尝试使用getAddionalData并将更多参数传递给控制器时,有没有办法可以将组合框的输入传递给函数?我不能直接调用组合框的id来获取getAddionalData中的值,因为可能有多个,我不知道调用该函数的确切id。我试图在函数中使用'this'限定符,但这只给了我读取的url。例如,在dataBound函数上,我可以调用this.open()并打开我的组合框。我不能在这里使用它。任何的想法?我调查了Kendo : ComboBox in a grid - Sending additional data of selected combobox to combobox Read(),这并没有让我得到我需要的东西。
@(Html.Kendo().ComboBoxFor(m=>m.Id)
.DataTextField("xxxx")
.DataValueField("xxxx")
.Placeholder("xxxx")
.MinLength(3)
.AutoBind(false)
.Events(e=>e.DataBound("functionCall").Change("functionCall"))
.TemplateId("templateId")
.HtmlAttributes(new { @class = "form-control", style = "width:100%" })
.Filter("contains")
.Delay(500)
.DataSource(source => source.Read(read => read.Action("method", "controller").Data("getAdditionalData(#=input.val()#)"))
.ServerFiltering(true))
.Height(500)
)
var getAdditionalData = function (e) {
//somehow get id of combobox calling the function and get the value of the input to pass to controller
//can't use 'this' or e.sender
return {
text: value,
searchLocation: "xxxx",
searchType: "xxxx"
}
}
答案 0 :(得分:0)
Per Telerik,http://www.telerik.com/forums/how-to-find-id-of-kendo-dropdownlist-in-event-handler,“Kendo UI DataSource不知道任何关于小部件的信息(包括DropDownList小部件的id)”。所以它看起来不可能。