gpt4 book ai didi

c# - 仅当在计算按钮之前单击确认按钮时,如何才能显示 lblmessage?

转载 作者:行者123 更新时间:2023-11-30 23:08:53 24 4
gpt4 key购买 nike

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Confirm.aspx.cs" Inherits="XEx04Quotation.Confirm" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Confirm quotation</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="Scripts/jquery-1.9.1.min.js"></script>
<script src="Scripts/bootstrap.min.js"></script>
<link href="Content/bootstrap.min.css" rel="stylesheet" />
<link href="Content/site.css" rel="stylesheet" />
</head>
<body>
<form id="form1" runat="server" class="form-horizontal">

<main class="container">

<h1 class="jumbotron">Quotation confirmation</h1>

<div class="form-group">
<label class="col-sm-3 control-label">Sales price</label>
<asp:Label ID="lblSalesPrice" runat="server" CssClass="col-sm-3 bold"></asp:Label>
</div>

<div class="form-group">
<label class="col-sm-3 control-label">Discount amount</label>
<asp:Label ID="lblDiscountAmount" runat="server" CssClass="col-sm-3 bold"></asp:Label>
</div>

<div class="form-group">
<label class="col-sm-3 control-label">Total price</label>
<asp:Label ID="lblTotalPrice" runat="server" CssClass="col-sm-3 bold"></asp:Label>
</div>

<div class="row">
<h3 class="col-sm-offset-2 col-sm-10">Send confirmation to</h3>
</div>

<div class="form-group">
<label class="col-sm-3 control-label">Name</label>
<div class="col-sm-3">
<asp:TextBox ID="txtName" runat="server" CssClass="form-control"></asp:TextBox>
</div>
<div class="col-sm-6">
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtName"
Display="Dynamic" ErrorMessage="Required" CssClass="text-danger"></asp:RequiredFieldValidator>
</div>
</div>

<div class="form-group">
<label class="col-sm-3 control-label">Email address</label>
<div class="col-sm-3">
<asp:TextBox ID="txtEmail" runat="server" CssClass="form-control"></asp:TextBox>
</div>
<div class="col-sm-6">
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtEmail"
Display="Dynamic" ErrorMessage="Required" CssClass="text-danger"></asp:RequiredFieldValidator>
</div>
</div>

<%-- Quotation and Return buttons --%>
<div class="form-group">
<div class="col-sm-offset-3 col-sm-9">
<%-- buttons go here --%>
<asp:Button ID="Button1" runat="server" Text="Send Quotation" CssClass="btn btn-primary"/>
<asp:Button ID="Button2" runat="server" Text="Return" CssClass="btn btn-primary" PostBackUrl="~/Default.aspx" CausesValidation="false"/>
</div>
</div>

<%-- message label --%>
<div class="form-group">
<div class="col-sm-offset-1 col-sm-11">
<%-- message label goes here --%>
<asp:Label ID="lblmessage" runat="server" Text="Click the Send Quotation button to send the quotation via email" CssClass="text-info"></asp:Label>
</div>
</div>

</main>

</form>
</body>
</html>

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace XEx04Quotation
{
public partial class Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}

protected void btnCalculate_Click(object sender, EventArgs e)
{
if (IsValid)
{
decimal salesPrice = Convert.ToDecimal(txtSalesPrice.Text);

// save the salesPrice into a session state variable
Session["SalesPrice"] = salesPrice;


decimal discountPercent = Convert.ToDecimal(txtDiscountPercent.Text) / 100;


decimal discountAmount = salesPrice * discountPercent;

// save the discountAmount into a session state variable
Session["Discount"] = discountAmount;


decimal totalPrice = salesPrice - discountAmount;

// save the totalPrice into a session state variable

Session["TotalPrice"] = totalPrice;

lblDiscountAmount.Text = discountAmount.ToString("c");
lblTotalPrice.Text = totalPrice.ToString("c");
}
}

protected void Button1_Confirm(object sender, EventArgs e)
{
if(Session["SalesPrice"] != null)
{
Response.Redirect("Confirm.aspx");
}
else
{
// This is the part I am concerned about
lblmessage2.Text = "Click the Calculate button before you click confirm";
}



}
}
}

大家好,

我正在使用 Default.aspx、Default.aspx.cs 以及 Confirm.aspx 和 Confirm.aspx.cs 构建多 Web 应用程序页面。我遇到的问题是,当我在单击“计算”之前单击“确认”时,事件处理程序会在页面底部显示“在确认之前单击计算按钮”。即使在确认之前单击了计算按钮,它也会这样做,并且在我重新加载页面时也会再次显示。 如果 SalesPrice 的 session 状态值为空,我怎样才能让它只显示?否则,它将重定向到确认页面。这是 Default.aspx.cs 和其他文件:

最佳答案

你只能做一件事。如果你想先得到总计算,然后禁用确认按钮,点击计算按钮将启用按钮,如下所示:

<asp:Button ID="Button1" runat="server" Enabled="false" />

protected void btnCalculate_Click(object sender, EventArgs e)
{
Button1.Enabled = True;

if(Session["TotalPrice"] != null)
{
lblMsg.Text = "Please click here to see total calculation";
}
}

protected void Button1_Confirm(object sender, EventArgs e)
{
if(Session["SalesPrice"] != null)
{
Response.Redirect("Confirm.aspx");
}
}

注意:请遵循事件名称的命名约定。 Button1btnConfirm

更新 1 - 尝试以下测试代码:

<asp:Button ID="btnCalculate" runat="server" Text="Calculate" OnClick="btnCalculate_Click" />

<asp:Button ID="btnConfirm" runat="server" Text="Confirm" OnClick="btnConfirm_Click" />

<asp:Label ID="lblMsg" runat="server"></asp:Label>


private int buttonWasClicked = 0; //Kept a variable type of int and with a default value 0

protected void btnCalculate_Click(object sender, EventArgs e)
{
buttonWasClicked = 1; //If clicked, then 1
Session["value"] = Convert.ToInt32(buttonWasClicked); //Then kept in session

lblMsg.Text = "Total Price - 10,000";
}

protected void btnConfirm_Click(object sender, EventArgs e)
{
if (Session["value"] != null) //If session not null, then redirect page
{
Response.Redirect("CustomerDetails.aspx");
Session["value"] = null; //Clears the session
}
else
{
lblMsg.Text = "Click the calculate button first";
}
}

关于c# - 仅当在计算按钮之前单击确认按钮时,如何才能显示 lblmessage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46266082/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com