2012-02-12 60 views
1

我正在使用Telerik MVC批量編輯網格與ASP.Net MVC3 Razor視圖。除了使網格可編輯外,我還試圖添加一個帶有編輯鏈接(理想情況下爲可鏈接圖像)的列,單擊它可以引導我進入單個記錄的編輯頁面。例如 -Telerik MVC3 Razor批量編輯網格與客戶端模板問題

@(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;" }) 
        ) 

This works。但問題是,網格在第一次渲染時與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 2012-02-13 21:47:47