2009-04-30 11 views
4

私は、データセットにバインドされたGridViewを持っています。私はフッターを持っています。これは列の行で区切られています。私は2列をマージしたい。それ、どうやったら出来るの?フッターをGridViewにマージできますか?

<asp:TemplateField HeaderText="Name" SortExpression="Name"> 
<ItemTemplate> 
... 
</ItemTemplate> 
<FooterTemplate >      
Grand Total: 
</div> 
</FooterTemplate> 
</asp:TemplateField> 
<asp:TemplateField HeaderText="Age" SortExpression="Age"> 
<ItemTemplate> 
... 
</ItemTemplate> 
<FooterTemplate >      
<%# GetTotal() %> 
</div> 
</FooterTemplate> 
</asp:TemplateField> 
+0

フッター行のインデックスでセルにアクセスするために、角括弧を使用するために必要な... - http://www.dotnetjunkies.com/WebLog/joshuagough/archive/2006/06/23/141038.aspx - http://forums.asp.net/t/1270422.aspx – madcolor

答えて

2

未テストコード

第一フッターテンプレートが含まれている必要があり<%#GetTotal()%>

第二フッターテンプレートは、私がこのような何かをやっていた

Protected Sub Page_SaveStateComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SaveStateComplete 
     Dim DG As GridView = GridView1 
      Dim Tbl As Table = DG.Controls(0) 
      Dim tr As GridViewRow 
      Dim i As Integer 
      Dim j As Integer 

tr = Tbl.Rows(Tbl.Rows.Count - 1) 'this line assume last row is footer row 

        tr.Cells(0).ColumnSpan = 2 'if you have 3 columns then colspan = 3 instead 

        For j = 1 To 1 'if you have 3 columns then j = 1 To 2 instead 
         tr.Cells(j).Visible = False 
        Next 

    End Sub 
1

空でなければなりません - フッタの複数の列にまたがるボタンがあります。

私はnoobであり、b)ではなく、でしたので、私はcodeによってcolumnspanを設定すると問題に遭遇しました。私はすべての細部を覚えていませんが、そこに何らかの邪魔がありました。余分な柱や何かを追加していたようです。

ここに私の解決策がありました。おそらくそれのいくつかが役に立つでしょう。私はgridview(gvDocs)のプリレンダリングでやった。

これは私のために正しく機能していたのですが、footspanのセルをプログラムで削除し、columnspanを設定していました。

コードが役立たない場合でも、恐らく人々は私を苦しめる侵略的忘却を笑うでしょう。私は時々笑います。

Protected Sub gvDocs_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles gvDocs.PreRender 

     If gvDocs.Rows.Count > 0 Then 


      Dim m As Integer = gvDocs.FooterRow.Cells.Count 
      For i As Integer = m - 1 To 1 Step -1 
       If i <> 8 Then '7 is the number of the column with the applychanges button in it. 
        gvDocs.FooterRow.Cells.RemoveAt(i) 
       End If 
      Next i 
      gvDocs.FooterRow.Cells(1).ColumnSpan = 6 '6 is the number of visible columns to span. 
     End If 
    End Sub 

Fernando68 - ここでは、C#で

protected void gvDocs_PreRender(object sender, System.EventArgs e) 
{ 

    if (gvDocs.Rows.Count > 0) { 

     int m = gvDocs.FooterRow.Cells.Count; 
     for (int i = m - 1; i >= 1; i += -1) { 
      //7 is the number of the column with the applychanges button in it. 
      if (i != 8) { 
       gvDocs.FooterRow.Cells.RemoveAt(i); 
      } 
     } 
     gvDocs.FooterRow.Cells[1].ColumnSpan = 6; 
     //6 is the number of visible columns to span. 
    } 
} 

//======================================================= 
//Service provided by Telerik (www.telerik.com) 
//Conversion powered by NRefactory. 
//Twitter: @telerik 
//Facebook: facebook.com/telerik 
//======================================================= 

あるEDITED - あなたはColumnSpanを探している

+0

C#バージョンください? – Fandango68

+1

@フェルナンドー68 - C#が追加されました – aape

+1

訂正ありがとう、マイク・グレイ。 – aape

6
protected void GridView1_OnRowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
    { 

     if (e.Row.RowType == DataControlRowType.Footer) 
     { 
      e.Row.Cells.RemoveAt(1); 
      e.Row.Cells[0].ColumnSpan = 2; 

     } 

    } 
+0

非常に良いときちんとした努力。 –

関連する問題