Sessions und Postback

06/07/2009 - 13:47 von Pawel Warmuth | Report spam
Hallo zusammen,

heute die zweite Frage von mir :-(
Ich habe eine kleine Adminseite mit einer ASP:Table und einem Button
Bei jedem Druck auf den Button soll eine weitere Row in der Tabelle
hinzugefügt werden.
Leider funzt es mit meiner Lösung nicht.

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session.Contents["LoggedIn"] == "Yes" &&
(int)Session.Contents["Rights"] < 3)
{

}
else
{
Response.Redirect(@"default.aspx");
}
}
else
{
List<TableRow> lisRows = new List<TableRow>();
foreach (TableRow row in tblCont.Rows)
{
lisRows.Add(row);
}
Session.Add("lisRows", lisRows);
}
}

protected void btnAdd_Click(object sender, EventArgs e)
{
List<TableRow> lisRows =
(List<TableRow>)Session.Contents["lisRows"];
foreach(TableRow row in lisRows)
{
tblCont.Rows.Add(row);
}
TableRow tblRow = new TableRow();
TableCell tbCell = new TableCell();
TextBox txtBox = new TextBox();
ListBox lisBox = new ListBox();
tbCell.Controls.Add(txtBox);
tbCell.Controls.Add(lisBox);
tblRow.Cells.Add(tbCell);
tblCont.Rows.Add(tblRow);
}
}
Jmd ne Idee?
Grüße
Pawel
 

Lesen sie die antworten

#1 Pawel Warmuth
06/07/2009 - 18:41 | Warnen spam
Ok Lösung selber gefunden.
Zu doof das ich immer alte Sachen geladen habe und den Cache nicht
aktualisiert habe :

public partial class AddContent : System.Web.UI.Page
{
List<TableRow> lisRow = new List<TableRow>();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session.Contents["LoggedIn"].Equals((object)"Yes") &&
(int)Session.Contents["Rights"] < 3)
{

}
else
{
Response.Redirect(@"default.aspx");
}
}
else
{
if (Cache["tblRow"] == null)
{
lisRow = new List<TableRow>();
foreach (TableRow row in tblContent.Rows)
{
lisRow.Add(row);
}
Cache.Insert("tblRow", lisRow);
}
else
{
lisRow = (List<TableRow>)Cache["tblRow"];
}
}
}

protected void btnAdd_Click(object sender, EventArgs e)
{
foreach (TableRow row in lisRow)
{
tblContent.Rows.Add(row);
}
TableRow tblRow = new TableRow();
TableCell tblCell = new TableCell();
TableCell tblCell2 = new TableCell();
tblCell.Controls.Add(new TextBox());
tblCell2.Controls.Add(new TextBox());
tblRow.Cells.Add(tblCell);
tblRow.Cells.Add(tblCell2);
tblContent.Rows.Add(tblRow);
lisRow.Add(tblRow);
Cache.Insert("tblRow", lisRow);
}

"Pawel Warmuth" schrieb im Newsbeitrag
news:u6mfS%23i$
Hallo zusammen,

heute die zweite Frage von mir :-(
Ich habe eine kleine Adminseite mit einer ASP:Table und einem Button
Bei jedem Druck auf den Button soll eine weitere Row in der Tabelle
hinzugefügt werden.
Leider funzt es mit meiner Lösung nicht.

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Session.Contents["LoggedIn"] == "Yes" &&
(int)Session.Contents["Rights"] < 3)
{

}
else
{
Response.Redirect(@"default.aspx");
}
}
else
{
List<TableRow> lisRows = new List<TableRow>();
foreach (TableRow row in tblCont.Rows)
{
lisRows.Add(row);
}
Session.Add("lisRows", lisRows);
}
}

protected void btnAdd_Click(object sender, EventArgs e)
{
List<TableRow> lisRows =
(List<TableRow>)Session.Contents["lisRows"];
foreach(TableRow row in lisRows)
{
tblCont.Rows.Add(row);
}
TableRow tblRow = new TableRow();
TableCell tbCell = new TableCell();
TextBox txtBox = new TextBox();
ListBox lisBox = new ListBox();
tbCell.Controls.Add(txtBox);
tbCell.Controls.Add(lisBox);
tblRow.Cells.Add(tbCell);
tblCont.Rows.Add(tblRow);
}
}
Jmd ne Idee?
Grüße
Pawel

Ähnliche fragen