Как использовать Rowspan в Gridview только для 1-го столбца

Нужна помощь, чтобы решить проблему, связанную с макетом Gridview. Я пытаюсь реализовать обычное Gridview с Itemtemplate Columns с использованием языка C # .Net и хочу включить представление с использованием свойства RowSpan.

Я пытался использовать приведенный ниже код, но нене работает для меняВот

Пожалуйста, проверьте код, который я использовал:

 protected void GridView31_DataBound1(object sender, EventArgs e)
{
    for (int rowIndex = grdView31.Rows.Count - 2; rowIndex >= 0; rowIndex--)
    {
        GridViewRow gvRow = grdView31.Rows[rowIndex];
        GridViewRow gvPreviousRow = grdView31.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;
            }
        }
    }

}

Но каждый раз, когдаgvRow.Cells[cellCount].Text == gvPreviousRow.Cells[cellCount].Text пусто

Следовательно, сетка принимает странные формы. Дон»не знаю, что здесь происходит.

Кто-нибудь может помочь?

Ответы на вопрос(3)

Решение Вопроса

void GridView31_RowDataBound(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.DataRow )
    {
        if (e.Row.RowIndex % 4 == 0)
        {
            e.Row.Cells[0].Attributes.Add("rowspan", "4");
        }
        else
        {
            e.Row.Cells[0].Visible = false;
        }
    }
}
 Pratik02 нояб. 2012 г., 05:59
@Yuiry Это гораздо лучше и очень легко понять.
 protected void GridView31_DataBound1(object sender, EventArgs e)
{
    int i = 1;
    for (int rowIndex = grdView31.Rows.Count - 2; rowIndex >= 0; rowIndex--)
    {
        GridViewRow gvRow = grdView31.Rows[rowIndex];
        GridViewRow gvPreviousRow = grdView31.Rows[rowIndex + 1];

        if (i % 4 !=0)
        {
            if (gvPreviousRow.Cells[0].RowSpan < 2)
            {
                gvRow.Cells[0].RowSpan = 2;
            }
            else
            {
                gvRow.Cells[0].RowSpan = gvPreviousRow.Cells[0].RowSpan + 1;
            }
            gvPreviousRow.Cells[0].Visible = false;
        }
        i++;
    }

 Pratik02 нояб. 2012 г., 09:37
@naveen Да, оба работают.
 naveen02 нояб. 2012 г., 06:02
рад помочь чувак ... :) но решение yuriys решает твои проблемы, верно?
 naveen01 нояб. 2012 г., 15:00
гораздо лучше ...marss.co.ua/MergingCellsInGridView.aspx
 Pratik02 нояб. 2012 г., 06:01
@Naveen Я проверил вышеупомянутое решение отлично работает и да гораздо лучше, чем я сделал :) Спасибо Навин за то, что поделился этим
    'VB.NET Code


Private Sub DG_Data_RowDataBound(sender As Object, e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles DG_Data.RowDataBound
            Try

                'fusion , rowspan , colspan , 
                If e.Row.RowType = DataControlRowType.DataRow Then
                    If e.Row.RowIndex Mod 4 = 0 Then
                        e.Row.Cells(0).Attributes.Add("rowspan", "4")
                    Else
                        e.Row.Cells(0).Visible = False
                    End If
                End If



            Catch ex As Exception
                jq.msgErrorLog(ex)
            End Try
        End Sub

Ваш ответ на вопрос