ASP.NET - проблема GridView - PullRequest
       4

ASP.NET - проблема GridView

2 голосов
/ 08 июня 2011

Я использую GridView элемент управления, который генерирует следующий HTML:

<table>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
    ...
</table>

Я хочу изменить HTML-код последней строки на что-то вроде этого:

<table>
    <tr><td>...</td><td>...</td></tr>
    <tr><td>...</td><td>...</td></tr>
    ...
    <tr><td colspan="2"><span>...</span><span>...</span></td></tr>
</table>

Я могу установить значение colspan для первой ячейки, но не знаю, как сгруппировать эти 2 ячейки в один элемент TD. Могу ли я сделать это, используя GridView control, или мне нужно использовать Repeater ?

Любая помощь будет принята с благодарностью.

EDIT

Я использую следующий код для решения проблемы:

// get cell values
string firstValue = lastRow.Cells[0].Text;
string secondValue = lastRow.Cells[1].Text;

// remove the second cell
lastRow.Cells.RemoveAt(1);
// set column span
lastRow.Cells[0].ColumnSpan = 2;
// set text inside TD element
lastRow.Cells[0].Text = "<span>" + totalText + @"</span><span>" +
                        totalConsumptionText + @"</span>";

Ответы [ 2 ]

1 голос
/ 08 июня 2011

Если вы хотите, чтобы это применялось только к последнему ряду, почему бы тогда не использовать нижний колонтитул вида сетки?Во всяком случае, я не вижу смысла, цели.Почему вы хотите изменить это, может быть, вы могли бы дать больше информации, чтобы мы знали, чего вы хотите достичь.

Если вы хотите, чтобы изменилась только последняя строка, тогда нижний колонтитул - это путь.

1 голос
/ 08 июня 2011

enter image description here

Хорошее обсуждение здесь о том, как сделать это с строкой заголовка

Вот фрагмент этого вопроса:

protected void gvOrganisms_DataBound(object sender, EventArgs e)
{
    GridView grid = sender as GridView;

    if (grid != null)
    {
        GridViewRow row = new GridViewRow(0, -1,
            DataControlRowType.Header, DataControlRowState.Normal);

        TableCell left = new TableHeaderCell();
        left.ColumnSpan = 3;
        row.Cells.Add(left);

        TableCell totals = new TableHeaderCell();
        totals.ColumnSpan = grid.Columns.Count - 3;
        totals.Text = "Totals";
        row.Cells.Add(totals);

        Table t = grid.Controls[0] as Table;
        if (t != null)
        {
            t.Rows.AddAt(0, row); // You will change this line to insert at the end!
        }
    }
}

Обратите внимание на мой комментарий к t.Rows.AddAt() ... Вы можете динамически добавлять строки, устанавливать соответствующие атрибуты, такие как colspan, и заполнять данные ячейки по желанию.

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