Behold værdier i UserControls i Session
Hey,Jeg har en usercontrol der indeholder tre tekstbokse. (A, B, C)
Disse kan jeg ved klik tilføje til en placeholder. (En usercontrol pr. klik).
For at vise flere usercontrols i placeholderen er jeg nødt til, at have usercontrols i en ArrayList som jeg gemmer i en session. Så hver gang jeg klikker tilføj, Laver jeg en ny ArrayList og tilføjer elementerne fra placeholderen og den nye - og lægger den i min session.
Mit problem:
Jeg kan vælge at tilføje usercontrol med A=1, A=2, A=3.
Men når jeg når til den tredie tilføjelse, så ændrer de to første sig.
Så det kunne se sådan her ud:
[Tilføj A=1]
Resultat:
A:1
[Tilføj A=2]
Resultat:
A:1
A:2
[Tilføj A=3]
Resultat:
A:1
A:1
A:3
[Tilføj A=2]
Resultat:
A:1
A:1
A:1
A:2
I don't get it??? :-/
Kode:
protected void Page_Load(object sender, EventArgs e)
{
try
{
DrawLines();
lblView.Text = "";
foreach (ucLine c in (ArrayList)Session["tilbudlinier"])
{
lblView.Text = "C, ";
}
}
catch { }
if (!IsPostBack)
{
// Hent services
DataClassesDataContext db = new DataClassesDataContext();
var services = from s in db.Services orderby s.name select s;
foreach (Service serv in services)
{
ddlService.Items.Add(new ListItem(serv.name + " (" + serv.price + " DKK / " + serv.price_unit + ")", serv.id.ToString()));
}
// Hent kunder
var customers = from c in db.Customers orderby c.name select c;
foreach (Customer cust in customers)
{
ddlKunde.Items.Add(new ListItem(cust.name, cust.id.ToString()));
}
Session["tilbud_linier"] = null;
}
}
protected void btnTilfoj_Click(object sender, EventArgs e)
{
ArrayList lines = new ArrayList();
foreach (ucLine l in phLines.Controls)
{
lines.Add(l);
}
int service_id = Convert.ToInt32(ddlService.SelectedValue);
ucLine line = (ucLine)LoadControl("ucLine.ascx");
DataClassesDataContext db = new DataClassesDataContext();
var service = (from s in db.Services where s.id == service_id select s).Single();
line.Initiate(service.id, service.name, service.price.ToString(), service.price_unit);
lines.Add(line);
Session["tilbud_linier"] = lines;
DrawLines();
}
private void DrawLines()
{
phLines.Controls.Clear();
ArrayList lines = (ArrayList)Session["tilbud_linier"];
foreach (ucLine line in lines)
{
phLines.Controls.Add(line);
}
}