2015-04-20 2 views
3

Я создаю простой калькулятор счета. При нажатии кнопки счета на этикетке будет отображаться итоговое значение. По какой-то причине кнопка ничего не делает. Я не получаю ошибок в моем коде. Любая помощь приветствуется.C# asp.net кнопка щелчок не отображается ярлык

protected void btnCalc_Click(object sender, EventArgs e) 
{ 
    Validate(); 
    if (IsValid) 
    { 
    } 

    decimal tips = Convert.ToDecimal(txtTips.Text); 
    decimal meals = Convert.ToDecimal(txtMeals.Text); 
    decimal buffets = Convert.ToDecimal(txtBuffets.Text); 
    string fname = txtFirstName.Text; 
    string tnumber = txtTableNumber.Text; 
    decimal mealsvalue = meals * 16.99M; 
    decimal buffetsvalue = buffets * 11.5M; 
    decimal tax = 0; 
    decimal walkR = 0; 
    decimal phoneR = 0; 

    if (rblTax.SelectedValue == "Tax") 
    { 
     tax = .06M; 
    } 
    else 
    { 
    } 


    if (rblReservation.SelectedValue == "Walk-in") 
    { 
     decimal subtotal = walkR + mealsvalue + buffetsvalue; 
     decimal taxvalue = subtotal * tax; 
     decimal total = walkR + mealsvalue + buffetsvalue + taxvalue + tips; 
     lblSummary.Text = "First name is " + fname + " Table number is " + tnumber + " Walk in cost is " + walkR + " Cost of meals is " + mealsvalue + 
     " Cost of buffets is " + buffetsvalue + " Tax is " + taxvalue + " Tip is " + tips + " Total is " + total; 
    } 
    else if (rblReservation.SelectedValue == "Phone") 
    { 
     phoneR = 3; 
     decimal subtotal = phoneR + mealsvalue + buffetsvalue; 
     decimal taxvalue = subtotal * tax; 
     decimal total = phoneR + mealsvalue + buffetsvalue + tax + tips; 
     lblSummary.Text = "First name is " + fname + " Table number is " + tnumber + " Phone reservation cost is " + phoneR + " Cost of meals is " + mealsvalue + 
     " Cost of buffets is " + buffetsvalue + " Tax is " + tax + " Tip is " + tips + " Total is " + total; 
    } 
    else 
    { 
     lblSummary.Text = "Please fill out the information"; 
    } 
} 

Кнопка декларации

<asp:Button ID="btnCalc" runat="server" Text="Bill" /> 
    <br /> 
    <asp:Label ID="lblSummary" runat="server"></asp:Label> 
+1

Strongsad, вам не нужно что-то вроде onserverclick = "the_name_of_your_method" в объявлении кнопки. – Mathemats

ответ

3

Похоже OnClick не хватает в вашем ASP.NET разделе кода.

<asp:Button ID="btnCalc" runat="server" Text="Bill" OnClick="btnCalc_Click"/> 

Обновлено:

Чтобы исправить другую проблему, вместо того, чтобы преобразовать в десятичную, попробуйте разбора, как показано ниже,

decimal tips = 0; 
bool result = decimal.TryParse(txtTips.Text, out tips); 

if (result) 
{ 
//txtTips.Text has a valid decimal value. You can proceed with your logic. 
} 
+0

Я добавил это, но теперь он говорит, что FormatException не был обработан кодом пользователя, а строка ввода не была в правильном формате на этой строке: decimal tips = Convert.ToDecimal (txtTips.Text); – Strongbad2143

+0

Удивительно, что сейчас работает! Благодаря! – Strongbad2143

+0

Рад, что это помогло. Пожалуйста, отметьте решение как принятый ответ, чтобы другие не тратили время на ответ на этот вопрос. Благодарю. – Vim

0

Вы должны сказать декларацию кнопки, которая обработчик события для использования , В этом случае обработчик события - OnClick, а функция события - btnCalc_Click.

Либо добавьте событие OnClick в объявление своей кнопки, как это.

<asp:Button ID="btnCalc" runat="server" Text="Bill" OnClick="btnCalc_Click" /> 

ИЛИ

Обеспечить событие вашей кнопки с помощью C# код в page_load случае, как это.

btnCalc.Click += btnCalc_Click; 
+0

Я добавил это, но теперь он говорит, что FormatException не был обработан кодом пользователя, а строка ввода не была в правильном формате на этой строке: decimal tips = Convert.ToDecimal (txtTips.Text); – Strongbad2143

+0

Это еще одна проблема, не связанная с вашим оригинальным вопросом. Однако, чтобы ответить на это, не могли бы вы рассказать мне, что вы вводите в txtTips TextBox? Вы оставите его пустым? –

Смежные вопросы