GridViewRow Headers 相互重叠
GridViewRow Headers placed above each other
我正在研究 ASP.NET C#。我正在用数据库中的数据填充 gridview。与 DataTable 绑定的 GridView 有一些列。我想用 Header 行对这些列进行分组。我尝试将这些 Header 行添加到 GridView,如下所示(示例代码):
我尝试使用行索引进行操作,但没有任何反应。
protected void AddHeaders()
{
GridViewRow vesselInfoRow = new GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell vesselInfotc = new TableCell();
vesselInfotc.Text = "Vessel Information ";
vesselInfotc.Style.Add("text-align", "center");
vesselInfotc.Style.Add("font-size", "medium");
vesselInfotc.Style.Add("font-weight", "bold");
vesselInfotc.Style.Add("background-color", "#b7dee8");
vesselInfotc.Style.Add("color", "black");
vesselInfotc.ColumnSpan = 4;
vesselInfoRow.Cells.Add(vesselInfotc);
this.BerthScoreCardGridView.Controls[0].Controls.AddAt(0, vesselInfoRow);
//
GridViewRow vesselArrivalRow = new GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell vesselArrivaltc = new TableCell();
vesselArrivaltc.Text = "Vessel Arrival ";
vesselArrivaltc.Style.Add("text-align", "center");
vesselArrivaltc.Style.Add("font-size", "medium");
vesselArrivaltc.Style.Add("font-weight", "bold");
vesselArrivaltc.Style.Add("background-color", "#b7dee8");
vesselArrivaltc.Style.Add("color", "black");
vesselArrivaltc.ColumnSpan = 2;
vesselArrivalRow.Cells.Add(vesselArrivaltc);
this.BerthScoreCardGridView.Controls[0].Controls.AddAt(0, vesselArrivalRow);
}
然而,各行如下所示彼此重叠:
如何将它们水平并排放置。感谢你的帮助。
您应该将所有单元格添加到同一行并将该行添加到 GridView:
protected void AddHeaders()
{
GridViewRow topHeaderRow = new GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell vesselInfotc = new TableCell();
vesselInfotc.Text = "Vessel Information ";
...
vesselInfotc.ColumnSpan = 4;
topHeaderRow.Cells.Add(vesselInfotc);
TableCell vesselArrivaltc = new TableCell();
vesselArrivaltc.Text = "Vessel Arrival ";
...
vesselArrivaltc.ColumnSpan = 2;
topHeaderRow.Cells.Add(vesselArrivaltc);
// Add the other cells here
...
BerthScoreCardGridView.Controls[0].Controls.AddAt(0, topHeaderRow);
}
并在 GridView 的 PreRender
事件中调用您的函数:
void BerthScoreCardGridView_PreRender(object sender, EventArgs e)
{
AddHeaders();
}
我正在研究 ASP.NET C#。我正在用数据库中的数据填充 gridview。与 DataTable 绑定的 GridView 有一些列。我想用 Header 行对这些列进行分组。我尝试将这些 Header 行添加到 GridView,如下所示(示例代码):
我尝试使用行索引进行操作,但没有任何反应。
protected void AddHeaders()
{
GridViewRow vesselInfoRow = new GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell vesselInfotc = new TableCell();
vesselInfotc.Text = "Vessel Information ";
vesselInfotc.Style.Add("text-align", "center");
vesselInfotc.Style.Add("font-size", "medium");
vesselInfotc.Style.Add("font-weight", "bold");
vesselInfotc.Style.Add("background-color", "#b7dee8");
vesselInfotc.Style.Add("color", "black");
vesselInfotc.ColumnSpan = 4;
vesselInfoRow.Cells.Add(vesselInfotc);
this.BerthScoreCardGridView.Controls[0].Controls.AddAt(0, vesselInfoRow);
//
GridViewRow vesselArrivalRow = new GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell vesselArrivaltc = new TableCell();
vesselArrivaltc.Text = "Vessel Arrival ";
vesselArrivaltc.Style.Add("text-align", "center");
vesselArrivaltc.Style.Add("font-size", "medium");
vesselArrivaltc.Style.Add("font-weight", "bold");
vesselArrivaltc.Style.Add("background-color", "#b7dee8");
vesselArrivaltc.Style.Add("color", "black");
vesselArrivaltc.ColumnSpan = 2;
vesselArrivalRow.Cells.Add(vesselArrivaltc);
this.BerthScoreCardGridView.Controls[0].Controls.AddAt(0, vesselArrivalRow);
}
然而,各行如下所示彼此重叠:
如何将它们水平并排放置。感谢你的帮助。
您应该将所有单元格添加到同一行并将该行添加到 GridView:
protected void AddHeaders()
{
GridViewRow topHeaderRow = new GridViewRow(1, 0, DataControlRowType.Header, DataControlRowState.Insert);
TableCell vesselInfotc = new TableCell();
vesselInfotc.Text = "Vessel Information ";
...
vesselInfotc.ColumnSpan = 4;
topHeaderRow.Cells.Add(vesselInfotc);
TableCell vesselArrivaltc = new TableCell();
vesselArrivaltc.Text = "Vessel Arrival ";
...
vesselArrivaltc.ColumnSpan = 2;
topHeaderRow.Cells.Add(vesselArrivaltc);
// Add the other cells here
...
BerthScoreCardGridView.Controls[0].Controls.AddAt(0, topHeaderRow);
}
并在 GridView 的 PreRender
事件中调用您的函数:
void BerthScoreCardGridView_PreRender(object sender, EventArgs e)
{
AddHeaders();
}