【问题标题】:Telerik MVC3 Razor Batch edit Grid with a Client Template issueTelerik MVC3 Razor 批量编辑网格与客户端模板问题
【发布时间】:2012-02-12 01:33:28
【问题描述】:

我正在使用带有 ASP.Net MVC3 Razor 视图的 Telerik MVC Batch 可编辑网格。除了使网格可编辑之外,我还尝试添加带有编辑链接(理想情况下是可链接图像)的列,单击该列将引导我进入单个记录的编辑页面。例如-

 @(Html.Telerik().Grid(Model)
                    .Name("BillersGrid")
                    .DataKeys(keys => keys.Add(o => o.id))
                    .ToolBar(commands =>
                    {
                        commands.Insert();
                        commands.SubmitChanges();
                    })
                    .DataBinding(databinding =>
                    {
                        databinding.Ajax()
                            .Select("SelectBatchEditing", "BillerAdmin")
                            .Update("SaveBatchEditing", "BillerAdmin", new { id =                (string)ViewData["BillerSearchString"] });
                    }
                    )
                    .Columns(columns =>
                    {
                        columns.Command(commands => commands.Delete().ButtonType(GridButtonType.BareImage)).Width(10).Title("");                        
                        columns.Bound(o => o.id).Title("Edit").ClientTemplate("<a href='/BillerAdmin/EditBiller?id=<#=id#>'>Edit</a>");
                        columns.Bound(o => o.id).Hidden(true);
                        columns.Bound(o => o.CouponBillerName).Title("Coupon Biller Name").HtmlAttributes(new { style = "white-space:nowrap;" });
                        columns.Bound(o => o.PayeeRecipient).Title("Recipient").HtmlAttributes(new { style = "white-space:nowrap;" });
                        columns.Bound(o => o.PayeeAddress1).Title("Address 1").HtmlAttributes(new { style = "white-space:nowrap;" });
                        columns.Bound(o => o.PayeeAddress2).Title("Address 2").Width(100);
                        columns.Bound(o => o.PayeeCity).Title("City").HtmlAttributes(new { style = "white-space:nowrap;" });
                        columns.Bound(o => o.State).ClientTemplate("<#= State #>");
                        columns.Bound(o => o.PayeeZip).Title("Zip").Width(50);
                        columns.Bound(o => o.PayeeZipPlusFour).Title("Zip+4").Width(50);
                        columns.Bound(o => o.Category).ClientTemplate("<#= Category #>").HtmlAttributes(new { style = "white-space:nowrap;" });
                        columns.Bound(o => o.AccountNumberFormat).Title("Account Number Format").Width(50);
                        columns.Bound(o => o.CodeLineNumberFormat).Title("CodeLine Number Format").Width(50);
                    })
                    .Pageable(paging => paging.Position(GridPagerPosition.Bottom).Style(GridPagerStyles.NextPreviousAndNumeric).Total((int)ViewData["BillersCount"]).PageSize(50))
                    .EnableCustomBinding(true)
                    .Editable(editing => editing.Mode(GridEditMode.InCell))
                    .Sortable()
                    .ClientEvents(evt => evt.OnDataBinding("BillersGrid_onDataBinding"))
                    .KeyboardNavigation(config => config.EditOnTab(true))
                    .HtmlAttributes(new { style = "font-size:.9x cem;" })
                    )

这行得通。但问题是网格在第一次呈现时显示为 Id(它是一个 guid)。在分页时,“编辑”超链接正确显示。

谁能帮帮我。我希望网格每次都显示编辑链接。此单元格应该是不可编辑的,并且应该是指向另一个视图的超链接。该功能正常工作。问题是 ID 在第一次呈现时显示。 请帮忙。

谢谢, SDD

【问题讨论】:

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


    【解决方案1】:

    在 ajax 绑定期间应用客户端模板。您的网格最初绑定在服务器端:

    Html.Telerik().Grid(Model)
    

    也可以设置服务器端模板:

    columns.Bound(o => o.id).Title("Edit")
           .Template(@<text>
               <a href="/BillerAdmin/EditBiller?id=@item.id">Edit</a>
            </text>) 
           .ClientTemplate("<a href='/BillerAdmin/EditBiller?id=<#=id#>'>Edit</a>");
    

    或使用 ajax 使网格最初绑定:

    Html.Telerik().Grid<YourModelType>()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多