2013-04-22 15 views
15

Bazı sütunlar için verileri birleştirilmiş satırlarla ızgara görünümünde göstermem gerekiyor. enter image description hereBirleştirilen hücrelerle GridView

Ve orijinal veri veritabanından geliyor mi formatında aşağıda: aşağıda tanımlanan biçimde bir ızgara görünümü hazırlamak için bana yardım edin enter image description here

dinamik bu görevi yapmak için en iyi yolu bulmak için bana yardım edin ve verimli.

+0

Kodlarınızı .. Yardımlarınız için –

cevap

18

RowSpan kullanmanız gerekecek.

bunun için aşağıdaki kodu bakınız:

protected void GridView1_DataBound1(object sender, EventArgs e) 
{ 
    for (int rowIndex = GridView1.Rows.Count - 2; 
            rowIndex >= 0; rowIndex--) 
    { 
    GridViewRow gvRow = GridView1.Rows[rowIndex]; 
    GridViewRow gvPreviousRow = GridView1.Rows[rowIndex + 1]; 
    for (int cellCount = 0; cellCount < gvRow.Cells.Count; 
                cellCount++) 
    { 
    if (gvRow.Cells[cellCount].Text == 
          gvPreviousRow.Cells[cellCount].Text) 
    { 
     if (gvPreviousRow.Cells[cellCount].RowSpan < 2) 
     { 
     gvRow.Cells[cellCount].RowSpan = 2; 
     } 
     else 
     { 
     gvRow.Cells[cellCount].RowSpan = 
      gvPreviousRow.Cells[cellCount].RowSpan + 1; 
     } 
     gvPreviousRow.Cells[cellCount].Visible = false; 
    } 
    } 
} 

Referans:

https://sites.google.com/site/learning6329/asp-net/gridview-merge-cells

Söz Konusu resimsel Örnek olarak:

http://marss.co.ua/MergingCellsInGridView.aspx

+0

Teşekkür göster yukarıda yazılı dış forloop içinde başka "forloop" kullanabilirsiniz, bu kod tam olarak çalışır benim şartına göre. – himanshu

+0

Her zaman beklerim. – Freelancer

+0

Sormam gereken bir şey daha var, bu hücre birleşimini, tüm ızgara görünümü sütunları için değil, düzeltme sütunları için sınırlandırmanın herhangi bir yolu var mı. Örneğin, bahsettiğim örnek çizelgemde olduğu gibi, herhangi bir kısıtlama uygulayacağız, böylece Hücre birleştirme, Açıklamalar alanı sütununda uygulanmayacaktır. – himanshu

1

İlk sütunun satır hücrelerini birleştirmenin en kolay yolu aşağıdaki gibidir. Lütfen Loop'un daima ters olarak yinelenmesi gerektiğini unutmayın.

protected void GridView1_DataBound(object sender, EventArgs e) 
    { 
     int RowSpan = 2; 
     for (int i = GridView1.Rows.Count-2; i >=0 ;i--) 
     { 
      GridViewRow currRow = GridView1.Rows[i]; 
      GridViewRow prevRow = GridView1.Rows[i+1]; 
      if (currRow.Cells[0].Text == prevRow.Cells[0].Text) 
      { 
       currRow.Cells[0].RowSpan = RowSpan; 
       prevRow.Cells[0].Visible = false; 
       RowSpan += 1; 
      } 
      else 
       RowSpan = 2; 
     } 
    } 

Eğer benzer tüm sütunların satır-hücreleri birleştirmek için isterseniz,

+0

Bu çözüm benim için mükemmel çalıştı, ilk satır için 3 sıra 1'e birleştirdi –