2010-06-02 60 views
3

序号列,我可以创建一个网格Telerik的MVC创建Telerik的MVC电网

<% Html.Telerik().Grid(Model) 
    .Name("ProductGrid") 
    .Columns(columns => { 
         columns.Bound(h => h.ProductName).Width("34%"); 
         columns.Bound(h => h.Description).Width("60%"); 
         columns.Bound(h => h.ProductID).Format(Html.ImageLink("Edit", "Products", new { Id = "{0}" }, "/Content/images/icon_edit.gif", "", new { Id = "edit{0}" }, null).ToString()).Encoded(false).Title("").Sortable(false).Width("3%"); 
         columns.Bound(h => h.ProductID).Format(Html.ImageLink("Delete", "Products", new { Id = "{0}" }, "/Content/images/icon_delete.gif", "", new { onclick = string.Format("return confirm('Are you sure to delete this add on?');") },null).ToString()).Encoded(false).Title("").Sortable(false).Width("3%"); 
     }) 

    .EnableCustomBinding(true) 
    .DataBinding(databinding => databinding.Ajax().Select("_Index", "ProductGrid")) 
    .Pageable(settings => settings.Total((int)ViewData["TotalPages"]) 
    .PageSize(10)) 
    .Sortable() 
    .Render(); %> 

但我需要在Telerik的grid.How添加序号专栏中,我能做到这一点?

回答

0

我认为要做到这一点的最好办法是到的SerialNumber列添加到您的产品类,这是你的模型,并不仅仅是增加一个绑定列到网格是这样的:

columns.Bound(h => h.SerialNumber) 

如果传递产品列表您可以填充的serialNumber列如下:

List<Product> products = GetList(); // Your method to get data here 
int counter = 1; 
products.ForEach(x => x.SerialNumber = counter++); 

如果你想支持分页一致的号码,你要计算自己counter宝贵的初始值。为此,您必须具有当前页面和页面大小。

+0

感谢您reply.If荫添加“产品” class.How属性“的SerialNumber”我可以增加它的每一行的值? – Jayaraj 2010-06-03 14:07:50

+0

It Works!非常感谢你。 – Jayaraj 2010-06-04 06:33:12

2

我认为最好的方法是使用这样的模板列。

<% 
    var sn = 0; 
    Html.Telerik().Grid(Model).Name("Grid").HtmlAttributes(new { style = "width:auto" }) 
     .EnableCustomBinding(true) 
     .Columns(columns => 
        { 
         columns.Template(c=> {%> <%: ++sn %> <% }).Title("S/N"); 
         columns.Bound(c => c.CustomerNumber); 
         columns.Bound(c => c.Narration); 
        }) 
        .Render(); %> 

这样,您不必将序列号属性添加到您的视图模型。

希望得到这个帮助吗?

0

在MVC的Web网 使用这种计算

grid.Column(header: "#", 
    format: item => item.WebGrid.Rows.IndexOf(item) + 1 + Math.Round(Convert.ToDouble(grid.TotalRowCount/grid.PageCount)/grid.RowsPerPage) * grid.RowsPerPage * grid.PageIndex),