【问题标题】:GridViewRow Headers placed above each otherGridViewRow 标题相互叠加
【发布时间】:2016-04-03 21:40:37
【问题描述】:

我正在研究 ASP.NET C#。我正在使用来自数据库的数据填充 gridview。 GridView 有与 DataTable 绑定的列。我想用标题行对这些列进行分组。我尝试将这些标题行添加到 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);


}

但是,这些行是按如下方式排列的:

我怎样才能将它们水平放置在彼此旁边。感谢你的帮助。

【问题讨论】:

    标签: c# asp.net gridview datarow


    【解决方案1】:

    您应该将所有单元格添加到同一行并将该单行添加到 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();
    }
    

    【讨论】:

      猜你喜欢
      • 2019-05-31
      • 1970-01-01
      • 1970-01-01
      • 2016-12-30
      • 1970-01-01
      • 1970-01-01
      • 2016-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多