2012-02-12 9 views
1

Telerik MVCバッチ編集可能グリッド(ASP.Net MVC3レイザービュー)を使用しています。グリッドを編集可能にすることに加えて、編集リンク(理想的にはリンク可能な画像)を含む列を追加しようとしています。クリックすると、個々のレコードの編集ページに移動します。例:Telerik MVC3クライアントテンプレートを使用したRazor Batch Editグリッド

@(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)で表示されることです。ページング時に、「編集」ハイパーリンクが正しく表示されます。

first time grid is rendered

On going to the next page

いくつかのいずれかが私を助けることができます。私はグリッドが毎回編集リンクを表示するようにしたいと思います。このセルは編集不可能で、別のビューに移動するハイパーリンクにする必要があります。機能は正しく動作します。問題は、IDが初めてレンダリングされたときに表示されることです。 助けてください。

おかげで、 SDD

答えて

0

クライアントテンプレートは、Ajaxが結合時に適用されます。あなたのグリッドは、最初のサーバー側を拘束されています

Html.Telerik().Grid(Model) 

どちらかだけでなく、サーバー側のテンプレートを設定します。

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

または最初にAJAXを使用してバインドされたグリッドを作成する:

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

おかげアタナス。サーバーテンプレートの追加が解決されました。 – sdd

関連する問題