Hola amigo, a diferencia de cuando trabajas en Windows Forms, en ASP.NET cada vez que la pagina se recarga (cuando das un click a algun boton asp.net) pierdes el valor de todas las variables que hayas declarado o inicializado, por lo que cada vez que se recargue la página tienes que reasignarle los valores, esto es en el evento page_load, ¿y como puedo hacer para mantener intacto el valor de mis variables? pues bueno, una opcion es almacenar tus variables en el Objeto Session de la siguiente manera:
Código:
.. Page_Load ...
{
if (!Page.IsPostBack)
{ //Esto ocurre solo la primera vez que se carga tu página
//Inicializas tus variables y las almacenas en el Session
pL = new ProgramacionLineal.ServicePL();
cM = new CapaIntermedia.ComunicacionConModulos();
Page.Session("Variable_PL") = pL;
Page.Session("Variable_cM") = cM;
}
else
{ //Si no es la primera vez que se recarga la página ( Esto puede suseder cuando el servidor responde a un click del boton por ejemplo
//obtienes el valor de tus variables desde el Session
pL = Page.Session("Variable_PL") ;
cM = Page.Session("Variable_cM");
}
}
De esta manera el valor de tus variables se mantiene intacto entre diferentes recargas de la página, por lo que cada vez que necesites manipular tus variables vas a tener que traerlas primero del Session ( Mi_Variable = Page.Session("Nombre_Alamacenamiento") y una vez que hayas manipulado su valor guardarlo de nuevo en el sesion ( Page.Session("Nombre_Alamacenamiento") = Mi_Variable), algo asi harias en tus funciones que manejas los clicks de los botones, espero que esto resuelva tus dudas