Это немного странное требование, но в прошлом я делал нечто подобное, когда добавлял вторую строку для поля заметок для каждой строки, потому что он был бы слишком широким, чтобы уместиться в текущей строке.
Во время вашего события RowDataBound попробуйте что-то вроде этого:
GridView x = (GridView)sender;
if (e.Row.RowType == DataControlRowType.DataRow && x.EditIndex == e.Row.RowIndex)
{
TextBox notes = (TextBox)e.Row.Cells[0].Controls[0];
notes.Height = // some height
notes.Width = // some width
notes.TextMode = TextBoxMode.MultiLine;
e.Row.Cells[0].Controls.Clear();
GridViewRow row = new GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Normal);
TableCell cell = new TableCell();
cell.ColumnSpan = // gridview columns count;
cell.Controls.Add(notes);
row.Cells.Add(cell);
x.Controls[0].Controls.AddAt(x.EditIndex + 2, row);
}
обратите внимание, это захват существующего связанного TextBox из 23-го столбца и копирование его в новую строку, а затем удаление из исходной ячейки. Кроме того, поле примечаний отображалось только в редактируемой строке, поэтому: && x.EditIndex == e.Row.RowIndex
и x.Controls[0].Controls.AddAt(x.EditIndex + 2, row);
Возможно, вам просто понадобятся части new GridViewRow
и new TableCell
.