年前用FineUI開發遇到了這樣一個問題,Grid多表頭合計行不能導出,後面到官方示例找了一下,慶幸的是找到了多表頭的導出示例。然後當時為了省事,直接就復制粘貼完事,也沒有仔細的研究代碼。後來運行一看,多表頭的問題是解決了,合計行的問題還是沒有解決。
由於到時要趕流程這個問題就暫時的放在了那裡,時間長了也忘了這個問題,這個星期項目測試驗收才重新發現這個問題(還好客戶沒有發現,偷笑)。昨天不經意間調試了下,發現count只有16條數據,加上合計行應該有17條數據才對啊。仔細看了下代碼原來官方示例上的代碼根本就沒有寫導出合計行的代碼。
找出問題就好辦了,整理下思路,首先要拿到合計行的數據保存為Json,然後拿到Grid所有列的ID,最後判斷合計行Json是否存在這個ID的節點,如果有就寫入數據沒有就寫入空
下面附上代碼
1 sb.Append("<tr>"); 2 JObject summarty = grid.SummaryData;//獲取合計行數據 3 if (summarty != null && summarty.ToString() != "")//判斷合計行數據是否為空 4 { 5 foreach (GridColumn column in mht.Columns)//遍歷出列的id 6 { 7 if (summarty.Property(column.ColumnID.ToString()) == null || summarty.Property(column.ColumnID.ToString()).ToString() == "")//判斷合計行Json是否存在該節點 8 { 9 sb.AppendFormat("<td>{0}</td>", "");//如果沒有就為空 10 } 11 else 12 { 13 sb.AppendFormat("<td>{0}</td>", summarty[column.ColumnID.ToString()].ToString());//如果有就寫入數據 14 } 15 } 16 } 17 sb.Append("</tr>");
至於多表頭的導出我就不解釋也不附上代碼了,直接引用三石大大的博客。http://www.cnblogs.com/sanshi/p/4104411.html
第一次寫博客寫的不好,有問題的地方希望大家能夠指出,非常感謝!作為新人,在此給各位前輩問好,希望各位前輩多多指教。