planetz Ответов: 1

Как вставить пустую строку между строками gridview, содержащими элементы управления


Всем Привет,

Я пытаюсь добавить пустые строки между строками gridview. Существующие строки также содержат элементы управления textbox. При первоначальном запросе get страница отображается правильно с соответствующим значением в соответствующих текстовых полях. Но при нажатии кнопки вне gridview значение textbox первой строки сетки после вставленной новой строки смещается в новую строку в элементе управления textbox. При вставке новой строки не было элемента управления textbox.

public void AddNewRow(object sender, GridViewRowEventArgs e)
        {
            GridView GridView1 = (GridView)sender;
            GridViewRow NewTotalRow = new GridViewRow(0, 0, DataControlRowType.EmptyDataRow, DataControlRowState.Insert);
            NewTotalRow.Font.Bold = true;
            NewTotalRow.BackColor = System.Drawing.Color.Blue;
            TableCell HeaderCell = new TableCell();
            HeaderCell.Height = 25;
            HeaderCell.HorizontalAlign = HorizontalAlign.Center;
            HeaderCell.ColumnSpan = 10;
            HeaderCell.ForeColor = System.Drawing.Color.White;
            HeaderCell.Text = "1st Level Subordinates";
            NewTotalRow.Cells.Add(HeaderCell);
            GridView1.Controls[0].Controls.AddAt(e.Row.RowIndex + rowIndex, NewTotalRow);
            rowIndex++;
        }

 protected void cmdBtn_saveSubmit_Click(object sender, CommandEventArgs e)
        { foreach (GridViewRow gvRow in grid_score.Rows)
                {
                    if (gvRow.RowType != DataControlRowType.EmptyDataRow)
                    {
                     TextBox txtscore = gvRow.Cells[7].FindControl("txtbox") as TextBox;
                    string score = txtscore.Text.ToString();
                     if (score =="")
                      {                                    System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), "displayalertmessage", "alert('alert');", true);
                                        return;
                      }
                    }
                 }
        }


Что я уже пробовал:

здесь после оператора return, когда страница появляется снова, форматирование emptydatarow удаляется. Кроме того, при проверке emptydatarow он отображается как обычный datarow, а значение textbox чуть ниже emptydatarow смещается в textbox в пустой строке.

1 Ответов

Рейтинг:
0

Member 10992268

DataTable dt = new DataTable();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            if(/* add ur condition wer control exist or not*/)
            {
            DataRow dr = dt.NewRow();
            dr[0] = 0;
            dt.Rows.InsertAt(dr, i);
            }
        }