2016-02-10 39 views
2

我有一個動態創建的GridView,我使用sql代碼WITH ROLLUP來顯示列的總數。但是有可能在空白單元格中顯示單詞總數?將字TOTAL添加到Gridview的最後一行

enter image description here

GridView控件:

<asp:GridView runat="server" 
           id="gvResults" 
           CssClass="tblResults" 
           onrowcreated= "gvResults_RowCreated" 
           AllowSorting="true" 
           OnSortCommand="gvResults_Sort" 
           DataKeyField="ID" 
           AutoGenerateColumns="true" 
           Visible =" true"> 
          <HeaderStyle CssClass="tblResultsHeader" /> 
          <AlternatingRowStyle BackColor="#EEEEEE" /> 

         </asp:GridView> 

SQL代碼來顯示GridView控件:

select 

    c.Name, 
    COUNT(distinct jn.ID) as Jobs, 
    sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''DEL'')>0 then 1 else 0 end) as EPOD, 
    sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''POD'')>0 then 1 else 0 end) as POD, 
    SUM((select COUNT(ID) from job_debriefs WHERE JobID = jn.ID)) as Debriefs, 
    FROM customer c 
    LEFT JOIN job_new jn ON jn.JobOwnerID = c.ID 
    LEFT JOIN manifestdetails md ON md.JobID = jn.ID and md.ColDelReturn = ''C'' 
    LEFT JOIN manifest man ON md.ManifestID = man.ID 
    WHERE jn.IsActive = 1 AND c.Company_ID = 12 
    GROUP BY c.Name WITH ROLLUP 

回答

2

可以使用GROUPING SQL函數來確定,特別是行是否c.Name正在捲起

select 
ifnull(c.Name,'TOTAL') as Name, 
COUNT(distinct jn.ID) as Jobs, 
sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''DEL'')>0 then 1 else 0 end) as EPOD, 
sum(case when (select count(jbs.status) from jobstat jbs where jbs.jobid=jn.id and jbs.Status=''POD'')>0 then 1 else 0 end) as POD, 
SUM((select COUNT(ID) from job_debriefs WHERE JobID = jn.ID)) as Debriefs, 
FROM customer c 
LEFT JOIN job_new jn ON jn.JobOwnerID = c.ID 
LEFT JOIN manifestdetails md ON md.JobID = jn.ID and md.ColDelReturn = ''C'' 
LEFT JOIN manifest man ON md.ManifestID = man.ID 
WHERE jn.IsActive = 1 AND c.Company_ID = 12 
GROUP BY c.Name WITH ROLLUP 

仍然意識到,但是,如果NULL值被允許在原c.Name列,那麼這個值也會被轉換爲單詞「TOTAL」。就我所知,在MySQL中沒有解決這個問題的辦法(當然除了消除NULL值)。

+0

我得到錯誤FUNCTION pxp.GROUPING不存在。 pxp是數據庫的名稱 – user123456789

+0

對不起,我錯誤地認爲這裏是MSSQL。 :)更新了查詢。 –

+0

非常感謝 – user123456789

0

你可以參考to this link。它可能對你有幫助。

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) 
{ 
    if (e.Row.RowType == DataControlRowType.DataRow) 
    { 
    Label Salary = (Label)e.Row.FindControl("lblSalary");   
    m = m + int.Parse(Salary.Text); 
    //Table tb = new Table(); 
    } 

    if (e.Row.RowType == DataControlRowType.Footer) 
    { 
    Label lblTotalPrice = (Label)e.Row.FindControl("Salary"); 
    lblTotalPrice.Text = m.ToString(); 
    } 
} 
+0

是的。當然。謝謝。 – HirenPatel

相關問題