通过连接到asp.net MVC方法过滤剑道网格中的数据
filter data in Kendo grid by connect to a method asp.net MVC
我正在使用ASP编写代码。。NET MVC与剑道网格。我想把数据从数据库到剑道网格等于具体日期或默认"今天"。
我想在工具栏上做一个日期选择器和一个按钮,每次我点击按钮,它都会向控件发送一个请求,并在LINQ中过滤数据,并在一天内发送所有数据的请求。我写了下面的代码:
控制器类:
//main method
public ActionResult LogAdminList()
{
return View();
}
//submethod for grid
public ActionResult Grid_ReadLogAdminList([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "id")] string date)
{
DateTime _temp;
if (!DateTime.TryParse(date, out _temp))
_temp = DateTime.Now;
return Json(_context.Entities<LogAdmin>().NoTracking().OrderByDescending(l => l.TimeStamp)
.Where(f => DbFunctions.TruncateTime(f.TimeStamp) == DbFunctions.TruncateTime(_temp))
.Select(l => new LogAdminInfo
{
Id = l.Id,
Message = l.Message,
MessageTemplate = l.MessageTemplate,
Level = l.Level,
TimeStamp = l.TimeStamp,
Exception = l.Exception,
Properties = l.Properties,
LogEvent = l.LogEvent,
})
.ToDataSourceResult(request));
}
剑道代码为:
@(Html.Kendo().Grid<LogAdminInfo>()
.BindTo(Model)
.Name("LogAdminList")
.Sortable()
.Columns(columns =>
{
columns.Bound(p => p.Message).Width(50).Title(WebResources.LogListMessage);
columns.Bound(p => p.MessageTemplate).Width(50).Title(WebResources.LogListMessageTemplate);
columns.Bound(p => p.Level).Title(WebResources.LogListLevel);
columns.Bound(p => p.TimeStamp).Title(WebResources.LogListTimeStamp).Format("{0:dd.MM.yyyy H:mm}");
columns.Bound(p => p.Exception).Width(50).Title(WebResources.LogListException);
columns.Bound(p => p.Properties).Width(50).Title(WebResources.LogListProperties);
columns.Bound(p => p.LogEvent).Title(WebResources.LogListLogEvent);
})
.Pageable(pageable => pageable
.Refresh(true)
.ButtonCount(5))
.HtmlAttributes(new { @class = "grd_UpcomingMilestone" })
.ToolBar(toolbar =>
{
toolbar.Template(@<text>
<div class="toolbar">
<label class="category-label" for="category">@WebResources.LogFilterMessage</label>
@(Html.Kendo().DatePicker()
.Name("datepicker")
.Value(DateTime.Today)
.Format("dd.MM.yyyy")
)
@(Html.Kendo().Button()
.Name("filterButton")
.Icon("filter")
.Content("Filter")
.HtmlAttributes(new { type = "button" })
)
</div>
</text>);
})
.DataSource(source => source
.Ajax()
.Batch(true)
.ServerOperation(false)
.PageSize(100)
.Read(read => read.Action("Grid_ReadLogAdminList", "LogAdmin").Data("getFilterDate"))
))
我不知道在javascript中该怎么做。代码在第一个请求中工作得很好,但当我过滤时就不行了。
我应该写什么作为一个javascript?
非常感谢。
您必须使用Kendo Grid Read Data
方法中指定的getFilterDate
函数将数据从客户端传递到服务器。实现这样一个函数。返回类型必须是一个与您在MVC动作中定义的相同名称的字段的对象,在本例中为date
。Kendo将序列化它们以构建get请求:
function getFilterDate() {
var mydate = $("#datepicker").data("kendoDatePicker").value();
return {
"date": mydate
}
}
相关文章:
- $.每个jquery循环打印一个“;未定义的“;对于getJSON请求后的每个元素,网格数据都会完美地打印出来
- 在页面上获取网格数据之前出现 jQuery 错误
- 对于光滑网格数据视图,如果有更多的行数,则不会加载所有行
- ExtJS 4.2 将网格数据导出到可下载的 CSV 文件
- 如何导出 Html.Kendo().网格数据以通用方式使用javascript表现出色
- 如何从网格数据表插件 jQuery 中清除数据
- 光滑网格数据查看链接
- 访问网格数据存储的加载函数内的sortInfo属性
- jquery 在我对 Kendo UI 网格数据进行更改后返回错误
- 如何在网格数据绑定为动态时为 jqgrid 单元格设置自定义标题
- AngularJS-ui网格-数据显示问题
- 单击事件时刷新网格数据
- 对列进行分组时,网格数据将消失
- 如何在ExtJS 5中使用分页过滤网格数据
- 将angularjs网格数据从一个控制器暴露到另一个控制器
- AngularJS Ui网格数据表,如何避免多ng重复
- Dojo使用JsonRestStore重新加载网格数据
- 用于存储网格数据的javascript对象
- 将网格数据发送到服务器Exjts4
- 参数以'null'使用Jquery时调用ajax绑定网格数据