2017-10-07 96 views
0

我有一個複選框列表,我可以設置每個進程的%爲特定項目 在這裏,我有3個過程在一個複選框列表 包裝20% Sanatising 10% 染色5添加值%和10.00如何複選框列表

項目,如果我選擇複選框列表 多個進程,我需要獲得該項目的總價值

我的代碼是這樣的

if (cblTaskDetails.Items.Cast<ListItem>().Any(item => item.Selected)) 
{ 

    for (int i = 0; i < cblTaskDetails.Items.Count; i++) 
    { 
     if (cblTaskDetails.Items[i].Selected) 
     { 
      foreach (ListItem item in cblTaskDetails.Items) 
      { 
       if (item.Selected) 
       { 
        string selectedValue = item.Value; 
        DataTable dt = tdbll.GetPercent(selectedValue); 
        foreach (DataRow dr in dt.Rows) 
        { 
         percent = Convert.ToInt32(dr["PricePercent"].ToString()); 
         value = (percent * Convert.ToDecimal(txtRate.Text))/100; 
        } 
       } 
      } 
      txtRate.Text = (Convert.ToDecimal(value + Convert.ToDecimal(txtRate.Text))).ToString(); 

      txtAmount.Text = (Convert.ToDecimal(txtQuantity.Text) * Convert.ToDecimal(txtRate.Text)).ToString(); 
     } 

    } 
+0

那麼你使用這段代碼面臨的問題是什麼?你有沒有嘗試調試代碼來找出它有什麼問題? –

+0

在這裏,我正在從正確的計算中選擇一個過程從複選框列表中,但選擇多於1的多個計算變得錯誤 –

+0

是隻對於選定的值 –

回答

0
if (cblTaskDetails.Items.Cast<ListItem>().Any(item => item.Selected)) 
      { 
       foreach (ListItem item in cblTaskDetails.Items) 
       { 
        if (item.Selected) 
        { 
         string selectedValue = item.Value; 
         DataTable dt = tdbll.GetPercent(selectedValue); 
         foreach (DataRow dr in dt.Rows) 
         { 
          percent = Convert.ToInt32(dr["PricePercent"].ToString()); 
          value += (percent * Convert.ToDecimal(txtRate.Text))/100; 
         } 
        } 
       } 
       txtRate.Text = (Convert.ToDecimal(value + Convert.ToDecimal(txtRate.Text))).ToString(); 

       txtAmount.Text = (Convert.ToDecimal(txtQuantity.Text) * Convert.ToDecimal(txtRate.Text)).ToString(); 
      }