Hej alla! Är det möjligt för dig att återskapa kontrollarna i Page_Load på samma sätt som du skapade kontrollerna från början? På det sättet skulle du slippa slösa massor av minne på servern i Session, samt slippa slöa ner laddningen av sidorna med massa ViewState. Tack Björn för ditt svar. Jag visste inte att jag kunde spara hela DataSet i Sesssion, det kommer att hjälpa en del fast dessvärre inte i detta projektet. Jag måste kunna spara undan kontrollerna... om jag inte kan spara kontrollerna så utlöses heller inte dess EventHandlers. Jorå, Eventhandler:na triggas ifall du återskapar kontrollerna på samma sätt igen i Page_Load Om du kollar här så får du svar på hur du ska göra. Japp... fast det är så att för varje postback är det helt olika kontroller som skall skapas eller återskapas beroende på vad vilken av de dynamiskt skapade kontrollerna man trycker på. Jag vet alltså inte innan vad det är som skall återskapas eller om det skall skapas nya kontroller. Hmmm jobbigt problem. Jag skrev ihop ett test för där man inte använder Viewstate eller Session Jag vet inte hur du tar beslutet om att skapa knapparna, men ifall du t ex skapar knapparna ifrån informationen i en tabell, baserat på något form av ID, så skulle du kunna spara undan id:t i ett hidden-fält. (Eller viewstate)Dynamiska kontroller spara unden i Session eller ViewState
Kan någon hjälpa mig med att spara undan kontroller i en Session eller ViewState för att i PageLoaden i en PostBack kunna återskapa dom. Jag skulle behöva ett C# kodexempel.
Jag skapar mina kontroller så här:
LinkButton LokaldelButt = new LinkButton();
LokaldelButt.Text = DSSort.Tables["LokaldelTable"].Rows[i].ItemArray[2].ToString();
LokaldelButt.ID = DSSort.Tables["LokaldelTable"].Rows[i].ItemArray[1].ToString();
LokaldelButt.Command += new CommandEventHandler(this.LokaldelChange);
LokaldelButt.CommandArgument = DSSort.Tables["LokaldelTable"].Rows[i].ItemArray[2].ToString();
När jag sedan vill posta om med en av dessa kontroller jag har skapat försvinner dom och eventet går om intet.
OBS att det är en väldig massa kontroller som jag skapar i codebehind och en väldig massa olika Views som skall skapas i de event som skall "Raisas" från de Dynamiska kontrollerna.Sv: Dynamiska kontroller spara unden i Session eller ViewState
Jag har inte testat att spara ner kontrollers i Session, men om inte annat så kan du spara undan DataTable:n i session
Session["Någon bra unik textsträng"] = DSSort.Tables["LokaldelTable"];
Eller möjligtvis hela DataSet:et
// MvH Björn Österman (DGC Solutions AB)Sv:Dynamiska kontroller spara unden i Session eller ViewState
\\LillenSv: Dynamiska kontroller spara unden i Session eller ViewState
Sv: Dynamiska kontroller spara unden i Session eller ViewState
http://www.pellesoft.se/communicate/forum/view.aspx?msgid=180165&forumid=10&sum=0
Du måste återskapa kontrollerna innan page_load för att det ska fungera.Sv:Dynamiska kontroller spara unden i Session eller ViewState
Sv:Dynamiska kontroller spara unden i Session eller ViewState
// MvH Björne
PS. Jag såg ditt svar efter jag lagt in exemplet; låter exemplet ligga kvar ändå.
------------- test-dyn-controls.aspx ----------------
<%@ Page language="c#" Codebehind="test-dyn-controls.aspx.cs" AutoEventWireup="false" Inherits="Test.TestDynControls" %>
<HTML>
<HEAD><title>Test Dynamic Controls</title></HEAD>
<body>
<form id="Form1" method="post" runat="server">
<asp:Label id="lblMessage" runat="server" EnableViewState="False"></asp:Label></P>
<asp:Table id="table" runat="server" EnableViewState="False"></asp:Table>
</form>
</body>
</HTML>
------------- test-dyn-controls.aspx.cs ----------------
using System;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace Test {
public class TestDynControls : Page {
protected Label lblMessage;
protected Table table;
private void Page_Load(object sender, System.EventArgs e) {
message("PageLoad");
fillButtons();
}
private void fillButtons() {
message("fillbuttons");
addButton("test1");
addButton("test2");
addButton("test3");
}
private void addButton(string text) {
TableRow tr = new TableRow();
TableCell cell = new TableCell();
tr.Cells.Add(cell);
Button button = new Button();
button.Text = text;
button.ID = text;
button.Command +=new CommandEventHandler(command);
button.CommandArgument = text;
cell.Controls.Add(button);
table.Rows.Add(tr);
}
override protected void OnInit(EventArgs e) {
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent() {
this.Load += new System.EventHandler(this.Page_Load);
}
private void command(object sender, CommandEventArgs e) {
message("command");
message("You pressed " + e.CommandArgument.ToString() );
}
private void message(string message) {
lblMessage.Text += message + "<br />";
}
}
}
Sv: Dynamiska kontroller spara unden i Session eller ViewState