colspan gridview строки - PullRequest
       5

colspan gridview строки

14 голосов
/ 04 августа 2011

Я добавил строки в gridview.В gridview есть 20 столбцов.Как я могу сделать colspan-подобную функцию в gridview, которая может показать мне 2-3 строки под 2-3 столбцами и остаться как colspan.

В основном я хочу реализовать colspan в gridview для строк gridview.

следовательно, мой нынешний gv похож на

Col 1 Col 2 Col 3 Col 4 ...... Col 20

Cell1 Cell2 Cell3 Cell 4 ...... Ячейка 20 (для строк № 1)

Мне бы хотелось что-то вроде

Кол 1 Кол 2 Кол 3 Кол 4 ...... Кол 20

    Cell1      Cell2    ...... Cell 20   (For Rows # 1)

Дайте мне знать по любому запросу.

Спасибо

Ответы [ 2 ]

26 голосов
/ 04 августа 2011

Вам необходимо обработать событие OnRowCreated GridView следующим образом:

 protected void grid_RowCreated(object sender, GridViewRowEventArgs e)
{
    if (e.Row.RowType == DataControlRowType.Header)
    {
        e.Row.Cells[2].ColumnSpan = 2;
        //now make up for the colspan from cell2
        e.Row.Cells.RemoveAt(4);
    }
}

Ваша разметка должна выглядеть примерно так:

<asp:GridView runat="server" ID="grid" OnRowCreated="grid_RowCreated" >

В приведенном выше примере я заполнил сетку следующим образом:

DataTable dt = new DataTable();
        for (int i = 0; i < 5; i++)
        {
            dt.Columns.Add("Col " + i);
        }
        for (int i = 0; i < 10; i++)
        {
            DataRow r = dt.NewRow();
            r.ItemArray=new object[]{"row "+i,"row "+i,"row "+i,"row "+i,"row "+i};
            dt.Rows.Add(r);
        }

        grid.DataSource = dt;
        grid.DataBind();

И это производит это: sample image

Я только что понял, что вы хотите, чтобы ROWS (не обязательно заголовок) имели определенный colspan, и в этом случае вы можете сделать:

 protected void grid_RowCreated(object sender, GridViewRowEventArgs e)
{
   if (e.Row.RowType == DataControlRowType.DataRow)
    {
        e.Row.Cells[2].ColumnSpan = 2;
        //now make up for the colspan from cell2
        e.Row.Cells.RemoveAt(4);
    }
}

И это даст:

enter image description here

0 голосов
/ 17 декабря 2018
Теги

BoundField и TemplateField имеют свойство ItemStyle-Width = "22%", как вы можете видеть, вы можете установить его для каждого столбца с процентом реагирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...