简体   繁体   English

如何正确获取“计算”按钮以计算ASP.NET C#中的总价格和折扣金额?

[英]How can I properly get my 'Calculate' button to calculate the total price and discount amount in ASP.NET C#?

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace XEx02Quotation { public partial class Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { if (IsValid) { int SalesPrice = Convert.ToInt32(TextBox1.Text); double DiscountPercentage= Convert.ToDouble(TextBox2.Text); double discountAmount = Convert.ToDouble(Label1.Text); double TotalPrice = Convert.ToDouble(Label2.Text); double discountValue = this.CalculateDiscountValue(SalesPrice, DiscountPercentage, discountAmount); double TotalValue = this.TotalPriceCalculate(TotalPrice, SalesPrice, discountAmount); Label1.Text = discountValue.ToString("c"); Label2.Text = TotalPrice.ToString("c"); } } protected double CalculateDiscountValue(int SalesPrice, double DiscountPercentage, double discountAmount) { discountAmount = SalesPrice * DiscountPercentage; return discountAmount; } protected double TotalPriceCalculate(double TotalPrice, int SalesPrice, double discountAmount) { TotalPrice = SalesPrice - discountAmount; return TotalPrice; } } } 
 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="XEx02Quotation.Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>Price quotation</title> <style type="text/css"> .auto-style1 { width: 54%; height: 213px; } .auto-style15 { width: 114px; height: 23px; } .auto-style16 { width: 114px; } .auto-style17 { width: 114px; height: 28px; } .auto-style18 { width: 193px; height: 23px; } .auto-style20 { width: 193px; height: 28px; } .auto-style21 { width: 193px; } .auto-style22 { margin-left: 12px; } .auto-style23 { margin-left: 16px; } .auto-style25 { width: 193px; height: 5px; } .auto-style26 { width: 114px; height: 5px; } .auto-style27 { width: 143px; height: 23px; } .auto-style28 { width: 143px; height: 5px; } .auto-style29 { width: 143px; } .auto-style30 { width: 143px; height: 28px; } .auto-style31 { width: 143px; height: 25px; } .auto-style32 { width: 193px; height: 25px; } .auto-style33 { width: 114px; height: 25px; } </style> </head> <body> <form id="form1" runat="server"> <h1>Price quotation</h1> <br /> <br /> <table class="auto-style1"> <tr> <td class="auto-style27">Sales Price</td> <td class="auto-style18"> <asp:TextBox ID="TextBox1" runat="server" CssClass="auto-style23" Width="173px" Font-Bold="True"></asp:TextBox> </td> <td class="auto-style15"></td> </tr> <tr> <td class="auto-style27"></td> <td class="auto-style18"></td> <td class="auto-style15"></td> </tr> <tr> <td class="auto-style27">Discount percent</td> <td class="auto-style18"> <asp:TextBox ID="TextBox2" runat="server" CssClass="auto-style22" Width="169px"></asp:TextBox> </td> <td class="auto-style15"></td> </tr> <tr> <td class="auto-style28">Discount amount</td> <td class="auto-style25">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<asp:Label ID="Label1" runat="server" Font-Bold="True" Text="Label"></asp:Label> </td> <td class="auto-style26"></td> </tr> <tr> <td class="auto-style27"></td> <td class="auto-style18"></td> <td class="auto-style15"></td> </tr> <tr> <td class="auto-style30">Total price</td> <td class="auto-style20"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <asp:Label ID="Label2" runat="server" Font-Bold="True" Text="Label"></asp:Label> </td> <td class="auto-style17"></td> </tr> <tr> <td class="auto-style31"> </td> <td class="auto-style32"></td> <td class="auto-style33"></td> </tr> <tr> <td class="auto-style29"> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Calculate" Width="90px" /> </td> <td class="auto-style21">&nbsp;</td> <td class="auto-style16">&nbsp;</td> </tr> </table> </form> </body> </html> 

Hello Everyone, 大家好,

I have created an ASP.NET 4.6 Web Form in a web application and I using C# to implement the functionality of some of the web server controls, but I am having trouble understanding why when I hit the 'Calculate' button, it doesn't calculate the discount amount and total price in the respective labels in bold when I enter sales price and discount percentage in the textboxes. 我已经在Web应用程序中创建了ASP.NET 4.6 Web窗体,并且使用C#来实现某些Web服务器控件的功能,但是我很难理解为什么当我按下“计算”按钮时却没有当我在文本框中输入销售价格和折扣百分比时,以粗体计算折扣标签中的折扣金额和总价格 Here is my Default.aspx code and Default.aspx.cs (C#) code. 这是我的Default.aspx代码和Default.aspx.cs(C#)代码。 What I am doing wrong? 我做错了什么?

By looking at your code I am sure you are getting exception. 通过查看您的代码,我确定您会遇到异常。 You are trying to convert Label1.Text to Double but Label1.Text does not have any value. 您试图将Label1.Text转换为Double,但Label1.Text没有任何值。 Also you are passing that value to the method just for it to be returned. 另外,您正将该值传递给方法以使其返回。 This doesn't make sense. 这没有道理。

If you want to return any value from a method, it is not required to be passed as and argument to that method. 如果要从方法返回任何值,则不需要将其作为和参数传递给该方法。

Change your code as following. 如下更改代码。

protected void Button1_Click(object sender, EventArgs e)
{
    if (IsValid)
    {
        int SalesPrice = Convert.ToInt32(TextBox1.Text);
        double DiscountPercentage= Convert.ToDouble(TextBox2.Text);
        double discountValue = this.CalculateDiscountValue(SalesPrice, DiscountPercentage);
        double TotalPrice = this.TotalPriceCalculate(SalesPrice, discountValue);
        Label1.Text = discountValue.ToString("c");
        Label2.Text = TotalPrice.ToString("c"); 

    }
}
protected double CalculateDiscountValue(int SalesPrice, double DiscountPercentage)
{
    doubl discountAmount = SalesPrice * DiscountPercentage;
    return discountAmount; 
}

protected double TotalPriceCalculate(int SalesPrice, double disountAmount)
{
     double TotalPrice = SalesPrice - discountAmount;
     return TotalPrice; 
}

This should help you resolve your issue. 这应该可以帮助您解决问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM