2016-04-03 13 views
0

Ich arbeite an ASP.NET C#. Ich bearbeite Gridview mit Daten aus der Datenbank. Das GridView enthält Spalten, die mit DataTable verknüpft sind. Ich möchte diese Spalten mit Kopfzeilen gruppieren. Ich habe versucht, diese Header-Zeilen zu einem GridView wie folgt hinzufügen (Beispielcode):GridViewRow Header übereinander platziert

Ich versuchte, mit Zeilenindex zu manipulieren, aber nichts passierte.

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


} 

jedoch die Reihen übereinander wie folgt platziert:

Screenshot of Page

Wie kann ich sie horizontal nebeneinander platzieren. Schätze deine Hilfe.

Antwort

0

Sie sollten alle Zellen der gleichen Zeile hinzufügen und diese einzelne Zeile zu Gridview hinzufügen:

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); 
} 

Und rufen Sie Ihre Funktion in der PreRender Ereignis des Gridview:

void BerthScoreCardGridView_PreRender(object sender, EventArgs e) 
{ 
    AddHeaders(); 
} 
+0

Dank i so wie du es erklärt hast. –