Tenho uma página WEB Form, no code behind dela eu criei um objeto assim:
[code]using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.DataAccess.Client;
using System.Drawing;
namespace WebIbema.ReservaVolume
{
public partial class frmItemPedidoReserva : System.Web.UI.Page
{
MCPedido.ItemPedido _item = new MCPedido.ItemPedido();
protected void Page_Load(object sender, EventArgs e)
{
}[/code]
Toda vez que ocorre o postback na página o objeto é estânciado novamente, mas eu preciso dos dados contidos nele.
Eu pensei em salvar o objeto em session e no postback recuperar ele mas não sei se essa é a melhor forma de proceder.
Tem alguma sugestão?
Bom, pra começar, acho que seu tópico deveria estar em “Outras Linguagens”, mas já que você já colocou aqui…
Você pode instanciar esse objeto no Page_Load da sua página, usando a propriedade IsPostback para garantir que ele só será instanciado quando a página for carregada da primeira vez:
[code]using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using Oracle.DataAccess.Client;
using System.Drawing;
namespace WebIbema.ReservaVolume
{
public partial class frmItemPedidoReserva : System.Web.UI.Page
{
MCPedido.ItemPedido _item = null;
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostback)
{
MCPedido.ItemPedido_item = new MCPedido.ItemPedido();
}
}[/code]
Certo fiz como disse,
Agora ele não istancia um novo objeto, mas quando vou utilizar o objeto ele está como null. Talvez a solução seja realmente armazenar em uma session ou viewstate, mas minha dúvida fica em que momento salvar, existe um evento que seja o oposto do Page_Load ou seja um evento que seja startado antes de dar o reload na página?
Obrigado.
Existe o Pre_Render, que é executado antes de carregar os componentes na página.