2016-09-24 4 views
0

У меня есть сайт asp.net с двумя формами. Первая форма содержит элементы ввода для ввода пользователем информации о доставке. Вторая форма содержит сводную информацию. Проблема заключается в том, что когда пользователь добавляет элемент, нажимая addButton на первую форму, они должны иметь возможность вводить другой элемент, и сумма цены этих элементов должна быть передана в итоговую форму, вместо этого она просто проходит цена самого последнего элемента, введенного после addButton. Я просто начинаю asp.net, поэтому любая помощь будет оценена.Добавление сводных переменных

protected void addButton_Click(object sender, EventArgs e) 
{ 
    var dollA = new List<decimal>(); 
    int i = 0; 
    for (i = 0; i < 4; i++) { 
     weightInteger = int.Parse(weightTextBox.Text); 
     quantityInteger = int.Parse(quanTextBox.Text); 
     priceDecimal = decimal.Parse(priceTextBox.Text); 

     // Calculate the current item price. 
     currentPriceDecimal = priceDecimal * quantityInteger; 
     // Format and display the current item price. 
     currentTextBox.Text = currentPriceDecimal.ToString("C"); 

     // Calculate the dollar amount due. 
     dollarAmountDecimal += currentPriceDecimal; 

     dollA.Add(dollarAmountDecimal); 
     dollDec = dollA.Sum(); 
     Session["Amount"] = dollDec; 
    } 
} 

Основная форма:

protected void Page_Load(object sender, EventArgs e) 
{ 
    decimal amount; 

    amount = Convert.ToDecimal(Session["Amount"]); 

    amountTextBox.Text = amount.ToString("C"); 
} 
+0

Почему существует цикл, который обрабатывает одни и те же поля ввода повторно? вы можете попробовать «Session [" Amount "] + = dollDec;' и посмотреть, что произойдет. В этом методе переменная сеанса переписывается, и я не думаю, что в настоящее время она имеет объем ваших других ресурсов. – dukedukes

+0

Я избавился от цикла for и попробовал 'Session [" Amount "] + = dollDec ;, но он приносит ошибку, в которой говорится:« Operator + = не может быть применен к операндам объекта типа и десятичного числа »@dukedukes –

+0

В этом случае do 'Session [" Amount "] = (decimal) Session [" Amount "] + dollDec;' – dukedukes

ответ

0

Это, казалось, работать на ОП на основе замечаний.

protected void addButton_Click(object sender, EventArgs e) 
{ 
    if (Session["Amount"] == null) 
     Session["Amount"] = Decimal.Zero; 

    weightInteger = int.Parse(weightTextBox.Text); 
    quantityInteger = int.Parse(quanTextBox.Text); 
    priceDecimal = decimal.Parse(priceTextBox.Text); 

    // Calculate the current item price. 
    currentPriceDecimal = priceDecimal * quantityInteger; 
    // Format and display the current item price. 
    currentTextBox.Text = currentPriceDecimal.ToString("C"); 

    // Calculate the dollar amount due. 
    dollarAmountDecimal += currentPriceDecimal; 

    Session["Amount"] = (decimal)Session["Amount"] + dollarAmountDecimal; 
} 
Смежные вопросы