2011-04-20 26 views
5

Her sütun için çok sayıda biçimlendirmeyle nasıl yuvalanmış WebGrid'e sahip olurum. İç içe geçmiş bir döngü yapabilirim, ancak temel olarak çağrı için ihtiyacım var. Yoksa başka daha iyi bir seçenek var mı? Ayrıntılı bilgi kurulumu ama bu işleriRazor Nested WebGrid

cevap

11

Mazeret ...

@{ 
    var data = Enumerable.Range(0, 10).Select(i => new { Index = i, SubItems = new object[] { new { A = "A" + i, B = "B" + (i * i) } } }).ToArray(); 
    WebGrid topGrid = new WebGrid(data); 
} 

@topGrid.GetHtml(columns: 
    topGrid.Columns(
     topGrid.Column("Index"), 
     topGrid.Column("SubItems", format: (item) => 
     { 
      WebGrid subGrid = subGrid = new WebGrid(item.SubItems); 
      return subGrid.GetHtml(
        columns: subGrid.Columns(
         subGrid.Column("A"), 
         subGrid.Column("B") 
        ) 
       ); 
     }) 
    ) 
) 

oluşturur:
Tabii No styling

Eğer yöntem her vermek çağrıları) (GetHtml içinde emin olmak gerekecek sayfalama/sıralama için ızgara (hem üst hem de alt) benzersiz parametre adları veya çakışmalarla sonuçlanacaksınız.

+0

+1 Yalnızca dış ızgara için çağrı yapmam gerekiyor. İç ızgara en fazla 5 ila 7 sıraya sahip olacak ve bunu birden fazla sütun yapamayacağım. Yani iç içe geçmiş ızgara için, o da biçimlendirilmiş tüm Model alanları ile uzun bir sütun olmasını planlıyorum. – IsmailS