2

我正在动态添加表格标题行,如下所示。它被正确渲染。现在我需要在按钮单击事件中读取新添加的标题行的第一个单元格值。我们如何读取标头值?

我不能使用gvCustomers.Rows因为它不会占用标题行。

我不能使用gvCustomers.HeaderRow.Cells[0].Text;也因为有两个标题行

代码

protected void gvCustomers_RowCreated(object sender, GridViewRowEventArgs e)
{

    if (e.Row.RowType == DataControlRowType.Header)
    {
        GridViewRow newHeaderRow = new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);

        TableCell cell1 = new TableHeaderCell();
        cell1.ColumnSpan = 1; //e.Row.Cells.Count;
        cell1.Text = "Expected";

        TableCell cell2 = new TableCell();
        cell2.ColumnSpan = 2;
        cell2.Text = "One";

        TableCell cell3 = new TableCell();
        cell3.ColumnSpan = 2;
        cell3.Text = "Two";

        TableCell cell4 = new TableCell();
        cell4.ColumnSpan = 2;
        cell4.Text = "Three";

        newHeaderRow.Cells.Add(cell1);
        newHeaderRow.Cells.Add(cell2);
        newHeaderRow.Cells.Add(cell3);
        newHeaderRow.Cells.Add(cell4);

        ((GridView)sender).Controls[0].Controls.AddAt(0, newHeaderRow);
    }



}

protected void Btn_Click(object sender, EventArgs args)
{


}
4

1 回答 1

1

我正在使用以下方法。有什么改进建议吗?

        int current = 0;
        int headerCount = grdTransactions.HeaderRow.Cells.Count;

        for (current = 0; current < headerCount; current++)
        {
            TableHeaderCell cell = new TableHeaderCell();
            cell.Text = grdTransactions.HeaderRow.Cells[current].Text;
            originalHeaderRow.Cells.Add(cell);
        }
于 2012-09-25T06:30:18.830 回答