在下面的代码中,我有一个静态方法,我想访问像gridview这样的控件。但是它抛出了对象引用错误。我试着像下面的链接:How to access page controls inside a static web method?。请帮我解决这个问题。
[WebMethod]
public static void Grade()
{
if (HttpContext.Current != null)
{
Page page = (Page)HttpContext.Current.Handler;
GridView gd = (GridView)page.FindControl("gdgrade");//null value
DataSet ds = GradeSystem.GradeSystem();
gd.DataSource = ds.Tables[0];
gd.DataBind();
}
}
答案 0 :(得分:1)
“[WebMethod]的全部意义在于它们不运行ASP.Net页面生命周期。这样,它们可以快速并且可以并行化。你的控件不存在。” - 从您引用的示例中...阅读文本而不仅仅是代码通常很有帮助;)
如果要加载网格,请使用jquery AJAX调用webmethod,返回所需的数据:
http://www.codeproject.com/Tips/775585/Bind-Gridview-using-AJAX