I can't seem to figure out why I can't display the session values I have stored in one other page. When I enter the name and birthday and click enter the name is supposed to be displayed on the next page, but for some reason it won't show up even though I'm pretty sure I have the code written correctly.
Code in page load event:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string name = (string)Session["NAME"];
Session["NAME"] = name;
//int year = (int)Session["YEAR"];
Label1.Text = "" + Session["NAME"];
int randomNum;
btnNew.Visible = false;
txtGuess.Focus();
if (!IsPostBack)
{
Random number = new Random();
randomNum = number.Next(1, 51);
Session["number"] = randomNum;
Session["Count"] = 0;
// lblNum.Text = "" + randomNum;
}
}
protected void btnGuess_Click(object sender, EventArgs e)
{
int random = (int)Session["number"];
int num;
bool guess = Int32.TryParse(txtGuess.Text, out num);
if (guess == false)
{
lblError.Text = "Invalid character. Must be a number";
}
if (guess == true)
{
if (num > 25 || num < 1)
{
lblError.Text = "Number is not in range. Must be between 1 and 25.";
}
else if (num < 26 || num > 1)
{
int count = (int)Session["Count"];
count++;
Session["Count"] = count;
if (num == random)
{
lblError.Text = "Correct guess! It took you " + Session["Count"] + " guesses";
txtGuess.ReadOnly = true;
btnNew.Visible = true;
btnGuess.Enabled = false;
btnGiveup.Enabled = false;
}
else if (num != random)
{
lblError.Text = "Incorrect guess. ";
if (num < random)
{
lblError.Text += "Guess higher";
}
else if (num > random)
{
lblError.Text += "Guess lower";
}
}
}
}
}
protected void btnGiveup_Click(object sender, EventArgs e)
{
int random = (int)Session["number"];
txtGuess.ReadOnly = true;
btnNew.Visible = true;
btnGuess.Enabled = false;
btnGiveup.Enabled = false;
lblError.Text = "Correct number was: " + random + ". Number of valid guesses made: " + Session["Count"];
}
protected void btnNew_Click(object sender, EventArgs e)
{
int randomNum;
Random number = new Random();
randomNum = number.Next(1, 26);
Session["number"] = randomNum;
//lblNum.Text = "" + randomNum;
Session["Count"] = 0;
lblError.Text = "";
txtGuess.ReadOnly = false;
txtGuess.Text = "";
btnNew.Visible = false;
btnGuess.Enabled = true;
btnGiveup.Enabled = true;
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="welcome.aspx.cs" Inherits="Default2" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Welcome</title>
<style type="text/css">
.newStyle1
{
border-style: solid;
border-width: 1px;
padding: 1px 4px;
font-family: Calibri;
margin-right: 165px;
width: 521px;
}
.style1
{
font-family: Calibri;
font-weight: normal;
}
</style>
</head>
<body>
<h2 class="style1">
Welcome to the guessing game!</h2>
<form id="form1" runat="server" defaultbutton="btnPlay">
<div class="newStyle1">
<br />
<asp:Label ID="lblName" runat="server" Text="Name:"></asp:Label>
<asp:TextBox ID="txtName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqName" runat="server" ControlToValidate="txtName" ForeColor="Red"
ErrorMessage="Name is required."></asp:RequiredFieldValidator>
<br />
<asp:Label ID="lblBirthDate" runat="server" Text="Date of birth:"></asp:Label>
<asp:TextBox ID="txtBirth" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="reqBirth" runat="server" Display="Dynamic" ControlToValidate="txtBirth" ForeColor="Red"
ErrorMessage="Date of birth is required."></asp:RequiredFieldValidator>
<asp:CompareValidator ID="compAge" runat="server" ControlToValidate="txtBirth" Type="Date" Operator="LessThan" ForeColor="Red"
ErrorMessage="Date invalid."></asp:CompareValidator>
<br />
<br />
<asp:Button ID="btnPlay" runat="server" Text="Play" onclick="btnPlay_Click" PostBackUrl="~/guess_game.aspx" />
</div>
</form>
</body>
</html>
Code in button click event:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
compAge.ValueToCompare = DateTime.Now.ToString("d");
}
protected void btnPlay_Click(object sender, EventArgs e)
{
DateTime birthDate;
if (DateTime.TryParse(txtBirth.Text, out birthDate))
{
int year = DateTime.Today.Year - Convert.ToDateTime(txtBirth.Text).Year;
Session["YEAR"] = year;
}
Session["NAME"] = txtName.Text;
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="guess_game.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>CO884 Lab 1 - Adam Graham</title>
<style type="text/css">
.style1
{
height: 80px;
width: 86px;
z-index: 1;
left: 228px;
top: 70px;
position: absolute;
}
</style>
</head>
<body>
<form id="form1" runat="server" defaultbutton="btnGuess">
<div>
<h1>
Number Guessing Game</h1>
<p>
Guess a number between 1 and 25.<img
alt="" class="style1" src="Images/green-question-mark.jpg" /></p>
</div>
<asp:TextBox ID="txtGuess" runat="server" MaxLength="2"
></asp:TextBox>
<asp:Label ID="lblNum" runat="server"></asp:Label>
<p>
<asp:Button ID="btnGuess" runat="server" Text="Guess"
onclick="btnGuess_Click" />
<asp:Button ID="btnGiveup" runat="server" Text="Give up"
onclick="btnGiveup_Click" />
<asp:Button ID="btnNew" runat="server" Text="Start New Game"
onclick="btnNew_Click" />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</p>
<asp:Label ID="lblError" runat="server"></asp:Label>
<p>
</p>
</form>
</body>
</html>
This post has been edited by jaArch: 07 October 2012 - 04:33 PM

New Topic/Question
Reply




MultiQuote





|