在DataGrid中实现数据汇总

SQL语句
SELECT   CASE GROUPING(o.customerid) WHEN 0 THEN o.customerid ELSE '(Total)' END AS MyCustomerID, 
  
CASE GROUPING(od.orderid) WHEN 0 THEN od.orderid ELSE -1 END AS MyOrderID,   
SUM(od.quantity*od.unitprice) AS price 
FROM Orders o, [Order Details] od 
WHERE Year(orderdate) = 1998 
AND od.orderid=o.orderid 
GROUP BY o.customerid, od.orderid WITH ROLLUP 
ORDER BY o.customerid, price
在DataGrid中添加ItemCreated事件
        private void dgOrder_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
        
{
            ListItemType itemType 
= e.Item.ItemType;

            
if (itemType == ListItemType.Item || itemType == ListItemType.AlternatingItem) 
            
{
                DataRowView drv 
= (DataRowView) e.Item.DataItem;
                
if (drv != null)
                
{
                    
if ((int) drv["MyOrderID"== -1)
                    
{
                        e.Item.BackColor 
= Color.White;  
                        e.Item.Font.Bold 
= true;
                        e.Item.Cells.RemoveAt(
1);            
                        e.Item.Cells[
0].ColumnSpan = 2;        
                        e.Item.Cells[
1].HorizontalAlign = HorizontalAlign.Right;
                    }

                }

            }

        }
posted @ 2006-06-02 16:46  Tim工作室  阅读(391)  评论(0编辑  收藏  举报