在Razor视图中的Telerik MVC Grid,GridCommand没有填充

时间:2012-05-21 19:11:43

标签: asp.net-mvc-3 c#-4.0 razor telerik-mvc

我在Razor视图中有一个telerik mvc网格。我正在使用自定义服务器绑定。我的问题是在分页和排序GridCommand对象属性“Page”,“PageSize”& “SortDescriptors”未获得正确的值。有趣的是,完全相同的代码适用于aspx视图。由于这是一个新视图,我已经开始使用“Razor”。 我的观点是 -

@(Html.Telerik().Grid((IEnumerable<Mitek.MobileImaging.AdminSite.Models.ImagingTransactionModel>)ViewData["DeficientGridView"])
   .Name("DeficientImagesGrid")
   .DataBinding(databinding => databinding.Server()
   .Select("ViewDeficientImages", "SuperAdmin", new { orgId = ViewData["OrgId"], beginDate = ViewData["BeginDate"], endDate = ViewData["EndDate"], searchString = ViewData["SearchString"] }))
   .DataKeys(keys => keys.Add(o => o.TranId))
   .EnableCustomBinding(true) 
   .BindTo((IEnumerable<Mitek.MobileImaging.AdminSite.Models.ImagingTransactionModel>)ViewData["DeficientGridView"])
   .Columns(
        columns => 
        { 
            columns.Template(
                                @<text>
                                   <a href="@Url.Action("DeficientImageDetails", "SuperAdmin", new { id = item.TranId }) ">
                                   <img alt="Deficient Image Details" src= "@Url.Content("~/Content/ImagesUI/detail_icon.gif")"  style="border:0px" /></a>   
                                 </text>
                            ).Title("Actions").Width(75);
            columns.Bound(o => o.TranId).Hidden(true);
            columns.Bound(o => o.user_email).Title("User Email").Width(250);
            columns.Bound(o => o.xml_config_name).Title("Job File").Width(200);
            columns.Bound(o => o.datetime_created).Title("Date Created").Format("{0:MM/dd/yyyy}").Width(200);
            columns.Bound(o => o.short_note).Title("Note").Width(200);
            columns.Bound(o => o.iqa_code).Title("IQA Code").Width(200);
        }).HtmlAttributes(new { style = " font-family:arial; font-size: .9em;  " })
   .Sortable()
   .Pageable(paging => paging.Position(GridPagerPosition.Bottom)
                            .Style(GridPagerStyles.NextPreviousAndNumeric)
                            .Total((int)ViewData["DeficientImagesCount"])
                            .PageSize(25))    
)

控制器看起来像

[GridAction(GridName = "DeficientGridView")]
public ActionResult ViewDeficientImages(DeficientImagesViewModel model, GridCommand command, string button)
{
    //Some Code......;            
    GridCommand myCommand = new GridCommand() { PageSize = 25 };
}

在分页或排序时,命令对象永远不会有command.Page,command.SortDescriptors的任何值。请注意,完全相同的代码适用于asps页面。 请帮忙。

谢谢, SDD

2 个答案:

答案 0 :(得分:0)

您是否可以检查它是否与[GridAction(GridName = "DeficientGridView"]属性有关,并且您的网格名称不同.Name("DeficientImagesGrid")

答案 1 :(得分:0)

您必须将[GridAction(EnableCustomBinding = true,GridName =“DeficientImagesGrid”)]更改为此。我今天遇到同样的问题,我发现这是有效的。如果您没有指定GridName,那么您将无法获得GridCommand。

  • 当查询字符串参数为QueueGrid-size = 2&amp; QueueGrid-page = 3
  • 时,不会填充gridCommand
  • gridQmand在查询字符串参数为size = 2&amp; page = 3
  • 时填充