2009-07-22 5 views
1

J'ai un gridview qui devrait permettre aux lignes d'être en mode édition. cela annule plus ou moins l'utilisation d'un répéteur je pense.En-tête détaillé ASP.net gridview multirow

Le fait est que l'en-tête est "spécial". Il devrait avoir plusieurs lignes avec certaines cellules couvrant plusieurs colonnes. un exemple:

 
| availability monitoring | monitoring | 

| colu 1 | colu 2 | colu 3 | col 4 | col 5 | 

(1, 2 et 3 sont des parties de availabilte, 4 et 5 de la surveillance habituelle)

En gardant à l'esprit qu'il ya 4 lignes dans l'en-tête je pense.

Est-il possible d'obtenir ce type d'en-tête avec l'option d'autoriser l'édition?

Répondre

1

Faites d'abord les colonnes que vous allez avoir des contrôles en colonnes dans templated. Ensuite, vous pouvez avoir tout ce que vous voulez là-dedans - une table, TextBoxes, cases à cocher, etc.

<HeaderTemplate> 
<asp:TextBox ID="TextBox1" runat="server" Text=''></asp:TextBox> 
<asp:CheckBox ID="CheckBox1" runat="server" /> 
</HeaderTemplate> 

Vous avez alors un contrôle supplémentaire en cas RowDataBound:

protected void gv_RowDataBound(object sender, GridViewRowEventArgs e) 
    { 
    if (e.Row.RowType != DataControlRowType.Header) 
      return; 

    // let the third column span over the next 2 columns. 
    e.Row.Cells[2].ColumnSpan = 3; 
    e.Row.Cells[3].Visible = false; 
    e.Row.Cells[4].Visible = false; 

    // could span more than 1 row. 
    e.Row.Cells[2].RowSpan = 2; 

etc ...

Ensemble, vous avez un contrôle total sur votre section d'en-tête.