我正在使用Kendo UI在ASP.NET MVC中编写一个Web应用程序。我在Kendo Grid中可视化数据如下:
@(Html.Kendo().Grid<MyModel>()
.Name("grid")
.DataSource(dataSource => dataSource // Configure the grid data source
.Ajax() // Specify that ajax binding is used
.Read(read => read.Action("ReadAction", "MyController", new { /*route values*/ }))
)
.Columns(columns =>
{
columns.Bound(n => n.Month).Title("Month").ClientTemplate("<input type='hidden' value='#=Month#' id='hfMonth'/>").Hidden();
columns.AutoGenerate(true);
})
.Pageable()
.Sortable()
现在我需要根据<select>
的更改事件触发网格更新。我怎样才能做到这一点?我从昨天开始尝试了几种可能性,并没有取得任何成功。
答案 0 :(得分:0)
如果没有看到组合框的代码,我会执行以下操作:
查看强>
@(Html.Kendo().ComboBox()
.Name("combo")
.DataTextField("Text")
.DataValueField("Value")
.BindTo(new List<SelectListItem>() {
new SelectListItem() {
Text = "Foo", Value = "1"
},
new SelectListItem() {
Text = "Bar", Value = "2"
},
new SelectListItem() {
Text = "Baz", Value = "3"
}
})
.Events(events =>
{
events.Change("onChange");
})
)
<强>的JavaScript 强>
function onChange(e) {
var grid = $("#grid").data("kendoGrid");
// if the selected value is not needed
grid.dataSource.read();
// if the selected value is needed use below instead
// changing the route parameter to match yours
var selectedValue = this.Value();
grid.dataSource.read({ id : selectedValue });
}
<强>更新强>
根据@PierpaoloIlConteParis评论:
我没有直接指定read.Action方法中的参数,而是使用了处理函数,就像在这篇文章telerik.com/forums/…中一样。现在,在更改组合框值时,操作会使用正确的参数触发