Reputation: 66
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"> <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">
<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"> </td>
<td class="auto-style16"> </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. Here is my Default.aspx code and Default.aspx.cs (C#) code. What I am doing wrong?
Upvotes: 0
Views: 807
Reputation: 6891
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.
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.
Upvotes: 1