[ASP.NET][Gridview](note)在表尾『垂直加總』時有整數與浮點數,怎麼加?

摘要:[Gridview]垂直加總有整數與浮點數,怎麼加?

我想在Gridview中做「垂直加總」,但是我想要加總的那一欄是e.Row.Cells[9].Text,
它有「整數」也有「小數點」,所以若照我上一篇的加總方式一定會報錯,
因為我無法得知e.Row.Cells[9].Text的整欄何時出現整數、何時出現小數點,
故無法直接   sum += Convert.ToInt32(e.Row.Cells[9].Text);

故我想出一個方式:(卡關卡1天,想破頭)
1、先用if判斷
e.Row.Cells[9].Text 整欄中是否為「整數(int)」或「非整數(double)」

2、若是整數,直用Convert.ToInt32(e.Row.Cells[9].Text)即可....
     但...若遇上null,則會有錯誤,故我用int.TryParse來防止轉換失敗時其值為「0」。
   (不做防呆,網頁一執行定會報錯)

3、判斷非整數(double),用if (e.Row.Cells[9].Text.ToString().IndexOf(".") != -1)//小數
       再直接 Convert.ToDouble(e.Row.Cells[9].Text)  即可。

4、把上述2、3的加總結果再相加即可。程式碼如下:


double sum1 = 0; //記得作全域變數
    int sum2 = 0;//記得作全域變數
    double sum3, sum4;//記得作全域變數
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
if (e.Row.RowType == DataControlRowType.DataRow)
        {


            if (e.Row.Cells[9].Text.ToString().IndexOf(".") != -1)//小數
            {
                double s1 = Convert.ToDouble(e.Row.Cells[9].Text);
                sum1 += s1;
            }
            else
            {

                int s2;
                if (!int.TryParse(e.Row.Cells[9].Text, out s2) == true)
                { s2 = 0; }
                // if(int.TryParse("11.5",out i)==true )
                //int s4 = Convert.ToInt32(e.Row.Cells[9].Text);
                sum2 += s2;
            }
              
               string sum3 = (sum1 + sum2).ToString();
               sum4 = Convert.ToDouble(sum3); 
                  //整數+非整數→一定是非整數,故sum4型態要定成double
        }
            if 
           (e.Row.RowType == DataControlRowType.Footer)
             {
                 e.Row.Cells[1].Text = "小計";
                 e.Row.Cells[9].Text = sum4.ToString();
           
                     //設定這個footer的字顏色與背景
                   e.Row.BackColor = System.Drawing.Color.Chocolate; 
                   e.Row.ForeColor = System.Drawing.Color.White;
        
            }
}

 

 
--
強烈建議購物網店或實體店家都必須使用關鍵字廣告or原生廣告來將Yahoo上與聯播網的廣大流量導至自己的網站!

●Yahoo關鍵字廣告/原生廣告
◆Yahoo廣告方案介紹 : https://goo.gl/5k8FHW
◆Yahoo廣告剖析與運用 : http://goo.gl/4xjUJD

 

​​