这是在webform
执行计算的最佳方式吗?它有效,但如果要将dropdownlists
添加到webform
,它似乎是非常强大的语法和最重要的。基本上我需要的是一种计算每个dropdownlist
的项目总计的方法,即ItemPrice * Quantity然后为每个项目添加税。仅供进一步解释:
Item1 = $ 10.00
第1项数量= 4
Item1Tax = $ 2.80
Item1total = $ 42.80
private double item1price;
private double item1total;
private double item1tax;
private double item2price;
private double item2total;
private double item2tax;
private double item3price;
private double item3total;
private double item3tax;
private double totalprice;
private double totaltax;
private double taxableamt = 0.07;
if (!String.IsNullOrEmpty(dropdownforitem1.Text))
{
item1total = Convert.ToDouble(item1price)*Convert.ToDouble(quantityfor1.SelectedItem.Text);
item1tax = item1total*taxableamt;
item1total = item1tax+item1total;
}
if (!String.IsNullOrEmpty(dropdownforitem2.Text))
{
item2total = Convert.ToDouble(item2price)*Convert.ToDouble(quantityfor2.SelectedItem.Text);
item2tax = item2total*taxableamt;
item2total = item2tax+item2total;
}
if (!String.IsNullOrEmpty(dropdownforitem3.Text))
{
item3total = Convert.ToDouble(item3price)*Convert.ToDouble(quantityfor3.SelectedItem.Text);
item3tax = item3total*taxableamt;
item3total = item3tax+item3total;
}
totalprice = item1total+item2total+item3total;
totaltax = item1tax+item2tax+item3tax;
答案 0 :(得分:0)
如何创建这样的方法?
private void CalculateTotals(double unitPrice, string quantity)
{
if (String.IsNullOrEmpty)
{
throw new ArgumentException("Quantity is not valid");
}
double itemQuantity = Convert.ToDouble(quantity);
double subtotal = unitPrice * itemQuantity;
double itemTax = taxableamt * subtotal;
double price = subtotal + itemTax;
totalprice += price;
totaltax += itemtax;
}
然后让每个下拉列表调用此方法:
CalculateTotals(item1price, quantityfor1.SelectedItem.Text);
答案 1 :(得分:0)
制作一个下拉词典并循环处理它们,总结你的总价和总税。
示例:
var taxableamt = 0.07m;
var dropDowns = new Dictionary<Control,DropDownList>();
dropDowns.Add(dropdownforitem1,quantityfor1);
dropDowns.Add(dropdownforitem2,quantityfor2);
dropDowns.Add(dropdownforitem3,quantityfor3);
// keep going for all drop downs.
var subtotal = 0.0M, tax = 0.0M;
foreach(var item in dropDowns.Keys)
{
var value = Convert.ToDecimal(item.Text);
var qty = Convert.ToDecimal(dropDowns[item].SelectedItem.Text);
var itemsubtotal = value * qty;
var itemtax = itemsubtotal * taxableamt;
subtotal+=itemsubtotal;
tax+=itemtax;
}
var totalprice = subtotal + tax;
答案 2 :(得分:0)
我认为您要实现的是购物车样式。如果您使用ASP.NET webforms,则必须使用Repeater控件或GridView控件,转发器中的每个项目都是Dropdown(可用商品绑定。),数量的文本框和Delete按钮。提供添加按钮以向网格添加新行。
单击“添加新按钮”时,需要动态地将行添加到网格中。必须使用ViewState或隐藏字段来跟踪要添加的行。
在最后的计算按钮上单击,需要遍历转发器项目并对从每个项目获得的值执行上述计算。
对下拉数量进行硬编码并不是一个好习惯。