file.aspx
<head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <asp:Panel ID="PanelContainer" runat="server"> Firstname: <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="search" onclick="Button1_Click" /> <br /> Lastname: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:Button ID="Button2" runat="server" Text="search" onclick="Button2_Click" /> </asp:Panel> <asp:Panel ID="PanelResult" runat="server"> </asp:Panel> <asp:Panel ID="PanelViewmore" runat="server"> </asp:Panel> </form></body>
file.aspx.cs
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public class Person{ public string fname; public string lname; public string birthdate; public int pnumber;}public partial class file : System.Web.UI.Page{ private static List<Person> personList = new List<Person>(); private static List<Person> returFirstname = new List<Person>(); private static List<Person> returLastname = new List<Person>(); static bool firstPageRun = new bool(); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { firstPageRun = true; PanelContainer.Visible = true; PanelResult.Visible = false; PanelViewmore.Visible = false; createPersonList(); } firstnameTable(); lastnameTable(); if (firstPageRun == true) { PanelResult.Visible = false; PanelViewmore.Visible = false; } } void createPersonList() { personList.Clear(); Person a = new Person(); a.fname = "Tom"; a.lname = "Hansen"; a.birthdate = "12.07.1981"; a.pnumber = 2; Person b = new Person(); b.fname = "Ole"; b.lname = "Nordman"; b.birthdate = "12.07.1983"; b.pnumber = 8; Person c = new Person(); c.fname = "Kim"; c.lname = "Haderson"; c.birthdate = "10.07.1975"; c.pnumber = 15; Person d = new Person(); d.fname = "Tom"; d.lname = "Petterson"; d.birthdate = "13.07.1980"; d.pnumber = 4; Person e = new Person(); e.fname = "Tom"; e.lname = "Hansen"; e.birthdate = "03.06.1981"; e.pnumber = 10; personList.Add(a); personList.Add(b); personList.Add(c); personList.Add(d); personList.Add(e); } // Firstname search protected void Button1_Click(object sender, EventArgs e) { TextBox2.Text=""; Session["firstname"] = null; PanelResult.Controls.Clear(); PanelViewmore.Controls.Clear(); returLastname.Clear(); firstPageRun = false; firstnameTable(); if (firstPageRun == true) { PanelResult.Visible=false; PanelViewmore.Visible = false; } Session["firstname"] = returFirstname; int x = 0; } public void firstnameTable() { Label lblResult = new Label(); PanelResult.Visible = true; PanelViewmore.Visible = false; string firstname = TextBox1.Text; returFirstname.Clear(); for (int i = 0; i < personList.Count;i++) { if (firstname == personList[i].fname) { returFirstname.Add(personList[i]); } } if (returFirstname.Count() == 0 && (firstPageRun == false)) { lblResult.Text = "<br />No result."; PanelResult.Controls.Add(lblResult); } else { int rowNumber = returFirstname.Count(); string message = "<strong>Your search have: </strong> " + rowNumber + " <strong>result</strong><br /><br />"; lblResult.Text = message; Table table = new Table(); table.CellPadding = 8; table.Width = 700; TableHeaderRow thr = new TableHeaderRow(); TableHeaderCell thFirstname = new TableHeaderCell(); TableHeaderCell thLastname = new TableHeaderCell(); TableHeaderCell thDate = new TableHeaderCell(); TableHeaderCell thPNumber = new TableHeaderCell(); TableHeaderCell thMore = new TableHeaderCell(); thFirstname.HorizontalAlign = HorizontalAlign.Left; thLastname.HorizontalAlign = HorizontalAlign.Left; thDate.HorizontalAlign = HorizontalAlign.Left; thPNumber.HorizontalAlign = HorizontalAlign.Left; thMore.HorizontalAlign = HorizontalAlign.Left; thFirstname.Text = "Firstname"; thr.Cells.Add(thFirstname); thLastname.Text = "Lastname"; thr.Cells.Add(thLastname); thDate.Text = "Birthday"; thr.Cells.Add(thDate); thPNumber.Text = "Personal nr"; thr.Cells.Add(thPNumber); thMore.Text = "View more"; thr.Cells.Add(thMore); table.Rows.Add(thr); for (int i = 0; i < rowNumber; i++) { TableRow tr = new TableRow(); LinkButton showmore = new LinkButton(); showmore.ID = i.ToString(); showmore.Text = "View more"; showmore.CommandArgument = i.ToString(); showmore.Click += new EventHandler(viewMore_Click); TableCell tcmore = new TableCell(); tcmore.Controls.Add(showmore); Person t = returFirstname[i]; TableCell fName = new TableCell(); TableCell lName = new TableCell(); TableCell bDate = new TableCell(); TableCell pNumber = new TableCell(); fName.Text = t.fname; lName.Text = t.lname; bDate.Text = t.birthdate; pNumber.Text = Convert.ToString(t.pnumber); tr.Cells.Add(fName); tr.Cells.Add(lName); tr.Cells.Add(bDate); tr.Cells.Add(pNumber); tr.Cells.Add(tcmore); table.Rows.Add(tr); } PanelResult.Controls.Add(lblResult); PanelResult.Controls.Add(table); } } // lastname search protected void Button2_Click(object sender, EventArgs e) { TextBox1.Text = ""; Session["lastname"]=null; PanelResult.Controls.Clear(); PanelViewmore.Controls.Clear(); returFirstname.Clear(); firstPageRun = false; lastnameTable(); if (firstPageRun == true) { PanelResult.Visible = false; PanelViewmore.Visible = false; } Session["lastname"] = returLastname; } public void lastnameTable() { Label lblResult = new Label(); PanelResult.Visible = true; PanelViewmore.Visible = false; string lastname = TextBox2.Text; returLastname.Clear(); for (int i = 0; i < personList.Count; i++) { if (lastname == personList[i].lname) { returLastname.Add(personList[i]); } } if (returLastname.Count() == 0 && (firstPageRun == false)) { lblResult.Text = "<br />No result."; PanelResult.Controls.Add(lblResult); } else { int rowNumber = returLastname.Count(); string message = "<strong><br />Your search for lastname have: </strong> " + rowNumber + " <strong>result</strong><br /><br />"; lblResult.Text = message; Table table = new Table(); table.CellPadding = 8; table.Width = 700; TableHeaderRow thr = new TableHeaderRow(); TableHeaderCell thLastname = new TableHeaderCell(); TableHeaderCell thFirstname = new TableHeaderCell(); TableHeaderCell thDate = new TableHeaderCell(); TableHeaderCell thPNumber = new TableHeaderCell(); TableHeaderCell thMore = new TableHeaderCell(); thFirstname.HorizontalAlign = HorizontalAlign.Left; thLastname.HorizontalAlign = HorizontalAlign.Left; thDate.HorizontalAlign = HorizontalAlign.Left; thPNumber.HorizontalAlign = HorizontalAlign.Left; thMore.HorizontalAlign = HorizontalAlign.Left; thLastname.Text = "Lastname"; thr.Cells.Add(thLastname); thFirstname.Text = "Firstname"; thr.Cells.Add(thFirstname); thDate.Text = "Birthday"; thr.Cells.Add(thDate); thPNumber.Text = "Personal nr"; thr.Cells.Add(thPNumber); thMore.Text = "View more"; thr.Cells.Add(thMore); table.Rows.Add(thr); for (int i = 0; i < rowNumber; i++) { TableRow tr = new TableRow(); LinkButton showmore = new LinkButton(); showmore.ID = i.ToString(); showmore.Text = "View more"; showmore.CommandArgument = i.ToString(); showmore.Click += new EventHandler(viewMore2_Click); TableCell tcmore = new TableCell(); tcmore.Controls.Add(showmore); Person t = returLastname[i]; TableCell lName = new TableCell(); TableCell fName = new TableCell(); TableCell bDate = new TableCell(); TableCell pNumber = new TableCell(); lName.Text = t.lname; fName.Text = t.fname; bDate.Text = t.birthdate; pNumber.Text = Convert.ToString(t.pnumber); tr.Cells.Add(lName); tr.Cells.Add(fName); tr.Cells.Add(bDate); tr.Cells.Add(pNumber); tr.Cells.Add(tcmore); table.Rows.Add(tr); } PanelResult.Controls.Add(lblResult); PanelResult.Controls.Add(table); } } protected void viewMore_Click(object sender, EventArgs e) { List<Person> result = returFirstname;//(List<Person>)Session["firstname"]; PanelViewmore.Controls.Clear(); PanelContainer.Visible = false; PanelResult.Visible = false; PanelViewmore.Visible = true; LinkButton b = sender as LinkButton; int listeNumber = Convert.ToInt32(b.CommandArgument); Person catchTheObject = result[listeNumber]; int x = catchTheObject.pnumber; Label a = new Label(); a.Text = "<br />This is the viewMore panel and the object number is " + x; PanelViewmore.Controls.Add(a); } protected void viewMore2_Click(object sender, EventArgs e) { List<Person> result = returLastname; //(List<Person>)Session["lastname"]; PanelViewmore.Controls.Clear(); PanelContainer.Visible = false; PanelResult.Visible = false; PanelViewmore.Visible = true; LinkButton b = sender as LinkButton; int listeNumber = Convert.ToInt32(b.CommandArgument); Person catchTheObject = result[listeNumber]; int x = catchTheObject.pnumber; Label a = new Label(); a.Text = "<br />This is the viewMore panel and the object number is " + x; PanelViewmore.Controls.Add(a); }}