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.