我有一个首页 (EmployeeDetails),其中包含一些文本框和一个列表框,在添加文本值后将填充该列表框。当我导航到显示所选列表框项目详细信息的另一个页面 (SpecificDetails) 时,我需要让列表框保持填充状态。我在第二页(SpecificDetails)上添加了一个按钮,该按钮应该返回到第一页(EmployeeDetails,同时仍然显示第一页的数据。
以下是每个代码:员工详细信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class EmployeeDetails : System.Web.UI.Page
{
private List<Employee> employees;
protected void Page_Load(object sender, EventArgs e)
{
if (this.IsPostBack)
{
employees = (List<Employee>)Session["emp"];
}
else
{
employees = new List<Employee>();
if (employees != null)
{
updateListBox();
int sNum = -1;
Int32.TryParse(Request.Params["Social"], out sNum);
if (sNum >= 0)
{
lstEmployees.SelectedIndex = sNum;
}
}
else employees = new List<Employee>();
}
}
protected void Page_PreRender(Object sender, EventArgs e)
{
Session["emp"] = employees;
}
protected void updateListBox()
{
lstEmployees.Items.Clear();
foreach (Employee e in employees)
{
lstEmployees.Items.Add(e.Social);
}
}
protected void btnAdd_Click(object sender, EventArgs e)
{
int snum;
int ynum;
if ((Int32.TryParse(txtSalary.Text, out snum) && (Int32.TryParse(txtCost.Text, out ynum)
&& txtName.Text.Length > 0)))
{
employees.Add(new Employee(txtName.Text, snum, ynum));
updateListBox();
lblError.Text = "";
lblError.Text = employees.Count().ToString();
}
else
lblError.Text = "Enter valid SSN Number, Year of Hire, Year of Employment End.";
txtName.Text = "";
txtSalary.Text = "";
txtCost.Text = "";
}
protected void btnRemove_Click(object sender, EventArgs e)
{
if (lstEmployees.SelectedIndex == -1)
lblError.Text = "No Employee Selected.";
else
{
Employee emp = employees[lstEmployees.SelectedIndex];
employees.RemoveAt(lstEmployees.SelectedIndex);
updateListBox();
lblError.Text = "Employee: " + emp.Social;
lblError.Text += "<br />has been removed. ";
}
}
protected void btnRemoveAll_Click(object sender, EventArgs e)
{
employees.Clear();
updateListBox();
lblError.Text = "All Employees Removed.";
}
protected void cmdMoreInfo_Click(object sender, EventArgs e)
{
if (lstEmployees.SelectedIndex == -1)
{
lblError.Text = "No employee selected.";
}
else
Server.Transfer("SpecificEmployee.aspx?emp=" + lstEmployees.SelectedIndex, true);
}
public string AllEmp
{
get { return txtName.Text + "<br />" + txtSalary.Text + "<br />"+ txtCost.Text; }
}
}
这是第二页:(具体细节)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class SpecificEmployee : System.Web.UI.Page
{
private List<Employee> employees;
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
employees = new List<Employee>();
employees = (List<Employee>)Session["emp"];
int i = -1;
Int32.TryParse(Request.Params["emp"], out i);
Employee emp;
emp = employees[i];
// lblEmployee.Text += "Here is Your Entry: " + prevPage.AllEmp + "<br />";
lblEmployee.Text += "Employee: " + emp.getDisplayText() +
"<br />";
}
}
protected void cmdReturn_Click(object sender, EventArgs e)
{
Response.Redirect("EmployeeDetails.aspx?AllEmp" );
}
}