24h購物| | PChome| 登入
2011-11-21 17:21:44| 人氣3,523| 回應0 | 上一篇 | 下一篇

[ASP.NET] 利用 Gridview PreRender 計算統計、總數 -- 插入新行

推薦 0 收藏 0 轉貼0 訂閱站台

資料來源:黃昏的甘蔗

我們經常使用 Gridview 來呈現相關的報表,也需要將報表的內容做一個彙整呈現,這時你可以另外使用一區塊來呈現結果,當然你也可以單純的將計算結果,直接呈現在 Gridview 的第一行或者是最下方了。

要做類似的 Gridview 資料處理動作(統計、計算)都必須在 Gridview_PreRender 下來處理,最後也不用再 databind()。 

 

Protected Sub GridView1_PreRender(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView1.PreRender  
   Dim i, sum As Integer
   Dim tt As Table = Me.GridView1.Controls(0) '類似 FindControl 的用意
   sum = 0
   ' 利用 For迴圈 計算統計結果
   For i = 1 To GridView1.Rows.Count - 1
      sum = sum + CInt(GridView1.Rows(i).Cells(0).Text)
   Next
   Dim tc1, tc2, tc3 As New TableCell()
   tc1.Text = sum ' Cell 數量來填入其值
   tc2.Text = "X"   '沒有要表現什麼,單純用X來表示
   tc3.Text = "X"

   Dim gv_row As GridViewRow = New GridViewRow(0, 0, DataControlRowType.DataRow, DataControlRowState.Normal)
   'New 一個 Gridview Row 來插入 GridViewRow(rowIndex, dataItemIndex, rowType, rowState)
   gv_row.Cells.Add(tc1)
   gv_row.Cells.Add(tc2)
   gv_row.Cells.Add(tc3)
   tt.Rows.AddAt(i + 1, gv_row)  ' i+1 指的是要插入到第幾 ROW
End Sub

 

Q:可以插入到 i+3 行嗎(也就是隔兩個空行)?

A:可以~但是不能直接指定到 i+3,這樣會顯示超過索引,必須要 New 出額外的兩個 GridViewRow 及 搭配的 TableCell(),才能正常插入兩個空白列。

 

Reference : Blueshop


台長: nut
人氣(3,523) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: 技術 |
此分類下一篇:GridView「新增」功能破解完整攻略
此分類上一篇:[技術]GridView新增 移除列

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文