Saltar al contenido

Cómo vincular una vista de cuadrícula desde un static WebMethod

Recabamos por distintos espacios y de esta forma tenerte la respuesta para tu duda, si tienes preguntas déjanos tu comentario y te contestamos con gusto, porque estamos para ayudarte.

Solución:

No puedes hacer lo que quieres.

Estás malinterpretando la diferencia entre static e instancia. Por ejemplo, su página puede ser utilizada por cientos de personas diferentes. Cada persona recibirá una instancia diferente de su página y cada persona verá una instancia diferente de GridView. Por otro lado, dado que su WebMethod es staticTODOS estos cientos de personas diferentes recibirán UN método.

Entonces, ¿cómo puede su static método decidir cuál servir? no puede

Si desea completar la vista de cuadrícula desde ajax, debe enviar datos desde su WebMethod, vea un ejemplo aquí.

Lea el siguiente artículo para obtener más información. ¿Por qué WebMethod son static.

si vas a usar static método, entonces no podrá usar ningún control de página, porque pertenecen a una clase de una página que no tiene static alcance. en static método que solo puede usar static datos, control, etc. La posible solución es que tendrá que crear una nueva instancia de su clase principal, es decir, Clase de página en static método y luego puede acceder a todo el control de la página esa instancia. como esto..

public static  MethodName

Class instance=new Class();
instance.GridView.DataSource=ds;
instance.GridView.DataBind();

pero la forma dada no funciona si desea retener los datos, ya que la instancia será nueva, por lo que los datos antiguos se eliminarán.

Puedes pasar el reference de gridview a la static method y vincular la vista de viga.

si haces un new instancia de la class y llama al static método lo hará create new form y all controls estarán created para eso specific instance entonces el gridview en original form nunca será poblada.

Aquí hay un ejemplo de cómo puede pasar reference y bindgridview.

protected void Page_Load(object sender, EventArgs e)

   GridView grd = grdTest; //grdTest is Id of gridview
   BindGrid(grd);


public static void BindGrid(GridView grd)

  using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
  
    SqlCommand cmd = new SqlCommand("select* from testtable", con);
    SqlDataAdapter adapter = new SqlDataAdapter(cmd);
    DataTable dt = new DataTable();
    adapter.Fill(dt);
    grd.DataSource = dt;
    grd.DataBind();
  

Te invitamos a añadir valor a nuestro contenido informacional tributando tu veteranía en las críticas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *