У меня есть сетка Кендо, для функции чтения которой требуется параметр ID. Если я жестко программирую идентификатор, команда чтения работает: он вызывает действие в контроллере и возвращает данные для сетки. Я не могу понять, как передать это значение из элемента управления на странице. Я искал весь день и не могу найти ответ. Может кто-нибудь объяснить, как это сделать?Как передать поле с точки зрения сетки Кендо?
Вот моя решетка с жестко заданным значением:
@(Html.Kendo().Grid<tblContractPay>()
.Name("GridContractPay")
.Columns(columns =>
{
columns.Bound(o => o.SchedDate).Title("Date").Visible(true).Format("{0:M/dd/yyyy}");
columns.Bound(o => o.Amount).Title("Amout").Visible(true).Format("{0:c}");
})
.Pageable(x => x.PageSizes(new[] { 10, 25, 50, 100 }).Refresh(true).ButtonCount(5))
.DataSource(dataSource => dataSource
.WebApi()
.Read(read => read.Url(Url.HttpRouteUrl("AppStdApi", new { controller = "WoApi", Action = "GetContractPay", id = "65" })))
.PageSize(25)
)
.AutoBind(true)
)
Здесь действие в контроллере:
public DataSourceResult GetContractPay([ModelBinder(typeof(Koorsen.ModelBinders.DataSourceRequestModelBinder))] DataSourceRequest request, string id)
{
var obj = rep.GetContractPayByContract(int.Parse(id)).ToDataSourceResult(request);
return obj;
}
Это прекрасно работает. Если в функции чтения я пытаюсь передать функцию GetContractID javascript вместо жестко закодированного значения 65, он буквально передает «GetContractID» на контроллер.
.Read(read => read.Url(Url.HttpRouteUrl("AppStdApi", new { controller = "WoApi", Action = "GetContractPay", id = "GetContractID" })))
Вот код, который Javascript функции:.
function GetContractID()
{
var contractID = $("#CoContractId").val();
return
{
id: contractID
}
}
Я также попытался положить $ ("# CoContractId") Вал() прямо в функции чтения (вызывает ошибку синтаксиса) и возвращает только идентификатор контракта, а не id: идентификатор контракта в javascript (никогда не доходит до контроллера).
Так как я прохожу $ ("# CoContractId") Val() в качестве значения ID вместо жестких кодированных значений в этом заявлении:.
.Read(read => read.Url(Url.HttpRouteUrl("AppStdApi", new { controller = "WoApi", Action = "GetContractPay", id = ??? })))
Update
Я также попробовал написать команду чтения, как показано ниже. Это не сработало. Когда страница с сеткой попадает, и когда сетка обновляется, она никогда не попадает в контроллер, когда я помещаю в нее контрольную точку.
Read(read => { read.Action("GetContractPay", "WoApi").Data("GetContractID"); })
Я попробовал это, и это не работает. Он никогда не ударяет моего контроллера. Вот мой код: Read (read => {read.Action («GetContractPay», «WoApi»). Данные («GetContractID»);}) – boilers222