Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc Telerik MVC网格Ajax参数?_Asp.net Mvc_Ajax_Telerik Grid_Telerik Mvc - Fatal编程技术网

Asp.net mvc Telerik MVC网格Ajax参数?

Asp.net mvc Telerik MVC网格Ajax参数?,asp.net-mvc,ajax,telerik-grid,telerik-mvc,Asp.net Mvc,Ajax,Telerik Grid,Telerik Mvc,我有点厌倦了试图计算Ajax网格参数。我已经创建了几个网格,参数似乎是随意的,我尝试了一件事,它对一个不起作用,然后对另一个起作用 我的理解是,如果这些参数存在于.DataKeys集合中,您真的不必将这些参数放入.DataBinding中?这似乎是任意的,当它起作用时,当它不起作用时 有人能给我一个关于Ajax网格绑定和向控制器传递参数的简短概述吗?这样我就可以选择数据来填充它了?为什么我需要定义参数,而其他时候它就像魔术一样工作 最近,每一个小小的想法似乎都是和Telerik MVC控件的较量

我有点厌倦了试图计算Ajax网格参数。我已经创建了几个网格,参数似乎是随意的,我尝试了一件事,它对一个不起作用,然后对另一个起作用

我的理解是,如果这些参数存在于.DataKeys集合中,您真的不必将这些参数放入.DataBinding中?这似乎是任意的,当它起作用时,当它不起作用时

有人能给我一个关于Ajax网格绑定和向控制器传递参数的简短概述吗?这样我就可以选择数据来填充它了?为什么我需要定义参数,而其他时候它就像魔术一样工作

最近,每一个小小的想法似乎都是和Telerik MVC控件的较量,甚至是我以前做过5-6次的事情

在这种情况下: LineItemID是主键,JobID是外键。我确实希望将JobID传递给select绑定。我想获取具有特定JobID的所有行项目

视图:

提前感谢您提供的任何见解。 史蒂夫在Teleriks论坛上看到了一篇文章。 如本文所述,我使用了OnDataBinding事件:


对我有用。使用Telerik extensions 2012第2季度

尝试为您希望(需要)在控制器上自动获取的每个数据键指定.RouteKey(“someName”),其中“someName”应与操作参数名称相同

什么不起作用?参数是null还是空字符串或其他?或者你有什么错误?是的,马特是对的,你需要更具体一些。您在控制器操作中收到的值是多少。由于您正在使用分页,请尝试确定请求是否适用于第一个页面,并在转到另一个页面时停止工作。此外,必须存在某种模式,在该模式中,您在action方法中接收到错误的值。
@{  Grid<viaLanguage.Jams.Data.tblJobManagementLineItem> grid = Html.Telerik().Grid<viaLanguage.Jams.Data.tblJobManagementLineItem>()
        .Name("InvoiceLineItemsGrid")
        .DataKeys(keys =>
        {
            keys.Add(i => i.LineItemID);//.RouteKey("LineItemID");
            keys.Add(i => i.JobID);//.RouteKey("jobID");
        })
        .DataBinding(dataBinding => dataBinding.Ajax()
            .Select("_SelectInvoiceLineItems", "Job", new { jobID = "<#= JobID #>" })
            .Insert("_InsertJobInvoice", "Job")
            .Update("_UpdateJobInvoice", "Job")
            .Delete("_DeleteJobInvoice", "Job"))
        .ToolBar(commands => commands.Insert().HtmlAttributes(new { style = "margin-left:0" }))
        .Columns(columns =>
        {
            columns.Bound(l => l.JobID);
            columns.Bound(l => l.LineItemDescr).Width(180).HeaderTemplate("Task");
            columns.Bound(l => l.LanguagePairID).Width(100).HeaderTemplate("Language Pair").ClientTemplate("<#= LanguagePair #>");
            columns.Bound(l => l.SourceWordCount).Width(100).HeaderTemplate("Source Words");            
            columns.Bound(l => l.QtyToInvoice).Width(100).HeaderTemplate("Quantity to Invoice");
            columns.Bound(l => l.Rate).Width(50).Format("${0:0.000}").HeaderHtmlAttributes(new { style = "text-align: center;" }).HtmlAttributes(new { style = "text-align: center;" });
            columns.Bound(l => l.SubTotal).Width(100).Format("{0:c}");
            columns.Command(commands =>
            {
                commands.Edit().ButtonType(GridButtonType.Image);
                commands.Delete().ButtonType(GridButtonType.Image);
            }).Width(80).HtmlAttributes(new { style = "white-space: nowrap;" });
        })
        .Resizable(resizing => resizing.Columns(true))
        .Sortable()
        .Selectable()
        .Pageable(paging => paging.PageSize(10))
        .Scrollable(c => c.Height("233px"))
        .Filterable();

    StringWriter sw = new StringWriter();
    grid.Render();
    grid.WriteInitializationScript(sw);
}           

@Html.Hidden("InvoiceLineItemsGrid_tGrid", sw.GetStringBuilder().ToString())
[GridAction]
public ActionResult _SelectInvoiceLineItems(int jobID)
{
    logLogic.logger.Debug(logLogic.GetMethodName() + ": User '" + User.Identity.Name);
    return View(new GridModel(jobLogic.GetInvoiceLineItems(jobID, User.Identity.Name)));
}