none
Llamar variable de un evento clic a otro evento clic RRS feed

  • Pregunta

  • Estoy tratando de realizer una accion de un control pero al momento de mandarla a llamar, no logro realizarla al 100% por que necesito una variable del anterior evento clic

    este es mi codigo:

    protected void Assign_Click(object sender, EventArgs e)
            {
                ScriptManager.RegisterStartupScript(this, this.GetType(), "Pop", "showAndHide();", true);
    
                Button Btn_clic = (Button)sender;
                var name = Btn_clic.Text; <-- variable que necesito en el siguiente evento
    
                List.ListUsers listArea = new List.ListUsers();
                List<Data.Area> Area = listArea.AreaList();
    
                List<Data.Area> ListOfEquiposOk = Area.Where(x => x.AREA == name && x.STANDBY == 0).ToList();
    
                List<Button> Botones = new List<Button>();
    
                var TeamFCH = ListOfEquiposOk.Select(x => x.TEAM).Distinct().ToList();
    
                foreach (var team in TeamFCH)
                {
                    Button newButton = new Button();
                    newButton.CommandName = "Btn" + Convert.ToString(team);
                    newButton.ID = "Btn_" + Convert.ToString(team);
                    newButton.Text = team;
    
                    newButton.Click += Info_Click;
    
                    newButton.OnClientClick = "return ModalGood();";
                    Botones.Add(newButton);
    
                    GoodPanel.Controls.Add(newButton);
                    newButton.CssClass = "btn-primary outline separate";
                }
            }
            /**********************************************************************/
    
             void Info_Click(object sender, EventArgs e)
            {
                Button Btnclick = (Button)sender;
                var team = Btnclick.Text;
    
                List.ListUsers listArea = new List.ListUsers();
                List<Data.Area> Area = listArea.AreaList();
    
                List<Data.Area> ListOfToolsOk = Area.Where(x => x.AREA == "ENG" && x.TEAM == "516" && x.STANDBY == 0).ToList();
    
                var ToolArea = ListOfToolsOk.Select(x => x.TEAM);
                Grv_Eng.DataSource = ListOfToolsOk;
                Grv_Eng.DataBind();
            }

    lunes, 3 de julio de 2017 13:05

Respuestas

  • hola

    >>variable que necesito en el siguiente evento

    podrias usar

    Session["name"] = Btn_clic.Text;

    y en el otro evento usarias

    string name = Session["name"].ToString();

    de esta forma tendrias el valor entre los eventos

    Tambien puedes usar el ViewState, se usa de la misma forma que el Session

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    lunes, 3 de julio de 2017 22:54
  • Para este caso concreto te recomiendo mejor el ViewState en lugar del Session. El Session se conserva entre todas las navegaciones en todas las sesiones de un mismo navegador, por lo que se te podría filtrar información de una pestaña a otra, y además podría fallarte al desplegar en una granja de servidores si no configuras un servidor de sesión. En cambio, el ViewState es local a esa página concreta y siempre funciona sin requisitos de configuración.

    ViewState["texto"] = Btn_clic.Text;

    ...

    string variableRecuperada = ViewState["texto"] as string;

    martes, 4 de julio de 2017 14:06

Todas las respuestas

  • Hola, no especificas cual es la variable que quieres guardar

    podrías evaluar el uso de session para mantenerla entre postbacks

    Crear y Utilizar Sesiones en ASP.Net


    Si la respuesta te fue útil vótala como tal,y si fue respuesta márcala.Solo dejo mis respuestas en el foro si son votadas o respuesta, de lo contrario por mantener el orden las borro.Saludos. Lima-Perú.

    lunes, 3 de julio de 2017 21:27
  • buenas puedes usar variables de sesión en caso que sea una web o puedes usar variables globales si es una aplicación windows para hacer que los 2 eventos se comuniquen. 
    lunes, 3 de julio de 2017 22:24
  • hola

    >>variable que necesito en el siguiente evento

    podrias usar

    Session["name"] = Btn_clic.Text;

    y en el otro evento usarias

    string name = Session["name"].ToString();

    de esta forma tendrias el valor entre los eventos

    Tambien puedes usar el ViewState, se usa de la misma forma que el Session

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    lunes, 3 de julio de 2017 22:54
  • Para este caso concreto te recomiendo mejor el ViewState en lugar del Session. El Session se conserva entre todas las navegaciones en todas las sesiones de un mismo navegador, por lo que se te podría filtrar información de una pestaña a otra, y además podría fallarte al desplegar en una granja de servidores si no configuras un servidor de sesión. En cambio, el ViewState es local a esa página concreta y siempre funciona sin requisitos de configuración.

    ViewState["texto"] = Btn_clic.Text;

    ...

    string variableRecuperada = ViewState["texto"] as string;

    martes, 4 de julio de 2017 14:06