asp:使用HTML的多个标题行的GridView

时间:2012-02-14 08:40:55

标签: javascript asp.net html gridview postback

我有一个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而不是代码隐藏,因为这似乎打破了网格。

由于

(我应该补充一点,'普通'/'OT'标题行在html中使用:

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

1 个答案:

答案 0 :(得分:0)

您可以在&lt; EditItemTemplate&gt;中执行以下操作标记:

<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>

您可以在......(点点)

中填写其余部分

希望这会有所帮助:)