asp: GridView с несколькими строками заголовка с использованием HTML - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть asp: GridView, который мне нужен, чтобы отобразить 2 строки заголовка ... Первый для дней (например, понедельник, вторник и т. Д.), А второй для отображения «Нормальное время» и «Сверхурочные».

Я сделал это путем динамического добавления кода в gridview_RowDataBound, проблема в том, что когда страница перезагружается / выполняет обратную передачу, то добавленная мной строка исчезает, и GridView больше не запускает функции JavaScript, используемые на нем. Это только иногда кажется, хотя, я понятия не имею, почему.

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

Вот как теперь выглядит моя сетка:

enter image description here

Используя следующий код:

                Table tbl = e.Row.Parent as Table;
            var row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);

            TableCell cell = new TableCell();
            cell.Text = "";
            cell.ColumnSpan = 3;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "Monday";
            cell.ColumnSpan = 2;
            cell.HorizontalAlign = HorizontalAlign.Center;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "Tuesday";
            cell.ColumnSpan = 2;
            cell.HorizontalAlign = HorizontalAlign.Center;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "Wednesday";
            cell.ColumnSpan = 2;
            cell.HorizontalAlign = HorizontalAlign.Center;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "Thursday";
            cell.ColumnSpan = 2;
            cell.HorizontalAlign = HorizontalAlign.Center;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "Friday";
            cell.ColumnSpan = 2;
            cell.HorizontalAlign = HorizontalAlign.Center;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "Saturday";
            cell.ColumnSpan = 2;
            cell.HorizontalAlign = HorizontalAlign.Center;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "Sunday";
            cell.ColumnSpan = 2;
            cell.HorizontalAlign = HorizontalAlign.Center;
            row.Cells.Add(cell);

            cell = new TableCell();
            cell.Text = "";
            cell.ColumnSpan = 2;
            row.Cells.Add(cell);

            tbl.Rows.AddAt(tbl.Rows.Count - 1, row);

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

Спасибо

(Я должен добавить, что строки заголовка 'Normal' / 'OT' устанавливаются в html с использованием:

<asp:TemplateField HeaderText="OT" HeaderStyle-HorizontalAlign="Center">

1 Ответ

0 голосов
/ 14 февраля 2012

Вы можете сделать следующее в вашем теге:

<EditItemTemplate>

<table>
    <tr>
        <td colspan=2>Monday</td >
        <td colspan=2>Tuesday</td >
        <td colspan=2>Wednesday</td >
        <td colspan=2>Thursday</td >
        <td colspan=2>Friday</td >
        <td colspan=2>Saturday</td >
        <td colspan=2>Sunday</td >
    </tr>

    <tr>
        <td>Normal</td>
        <td>OT</td>
        <td>Normal</td>
        <td>OT</td>

        ...
        ...
        ...
    </tr>

    <tr>
        <TD><asp:Textbox ID="txtBox1" runat="server"/></TD>
        <TD><asp:Textbox ID="txtBox2" runat="server"/></TD>
        <TD><asp:Textbox ID="txtBox3" runat="server"/></TD>
        <TD><asp:Textbox ID="txtBox4" runat="server"/></TD>

        ...
        ...
        ...

    </tr>
</table>

</EditItemTemplate>

Вы можете заполнить оставшуюся часть в ... (точечные точки)

Надеюсь, это поможет:)

...