我必须将 Id 和 Date 值传递给索引控制器中的操作结果(更新(。但是我无法使用以下代码传递参数:
@(Html.Telerik().Grid(Model)
.Name("NotesDetails")
.DataBinding(dataBinding => dataBinding.Ajax().Select("ListAjax", "NotesDetails"))
.Columns(columns =>
{
columns.Bound(o => o.Flag).Visible(false).Title("Flag");
columns.Bound(o => o.Id).Visible(false).Title("Id");
columns.Command(commands =>
{
commands.Custom("Flag value")
.Text("<img id='flag' width='20' height='10' src = '/Content/images/Flag.png' >")
.Ajax(true)
.Action("Update", "Index", new { id=#-Id#, date = #-Date# });
}).Title("Flag");
columns.Bound(o => o.Date).Visible(true).Title("Date");
columns.Bound(o => o.Author).Visible(true);
columns.Bound(o => o.Task).Visible(true);
})
.Pageable(pager =>
{
pager.Style(GridPagerStyles.PageSizeDropDown | GridPagerStyles.NextPrevious);
pager.Position(GridPagerPosition.Both);
pager.PageSize(50, new int[] { 50, 100, 500 });
})
如果我给出这样的值.Action("Update", "Index", new { id=123, date = "2000/2/2"}(;我得到了结果
提前致谢
我们以 Jquery 的方式处理这个问题
command.Custom("Update").Click("jQueryFilename.functionName").Text("Refresh User")
在jQuery中:
jQueryFilename.functionName = function(e) {
e.preventDefault();
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
var json = JSON.stringify(dataItem);
$.ajax({
url: Controllername/Index,
type: 'POST',
contentType: "application/json",
data: json
}).done(function () {
var grid = $("#Grid").data("kendoGrid");
grid.dataSource.read();
grid.refresh();
}
);
}
您需要设置jQuery选择器以获取您的ID和日期,但这非常简单。祝您编码愉快!