我有一个网络表单,在该网络表单中,我尝试从静态方法访问面板对象,但无法访问它如何从静态方法访问面板对象。为什么我要尝试从静态访问对象?因为我使用的是 JQUERY,它只接受静态方法。
我尝试将面板存储在 Page_Load() 的会话中并从静态方法中检索它,但它不起作用。
public static void DoSomething()
{
if (HttpContext.Current != null)
{
Page page = (Page)HttpContext.Current.Handler;
TextBox TextBox1 = (TextBox)page.FindControl("TextBox1");
TextBox TextBox2 = (TextBox)page.FindControl("TextBox2");
}
}
您可能在 aspx 页面中使用 web 方法从 jQuery
ajax()
调用它。您无法访问 Web 方法中的控件,而是通过 ajax
调用将信息传递到您的 Web 方法,并将信息从 web method
返回到 jQuery ajax callback
并在 javascript jQuery 回调函数中在面板上执行操作。
我自己总是在后面的代码中使用非静态函数,并从我的 WebMethod 中调用它,我所需要做的就是将它们放在我的函数中,而不是 WebMethod 中。要从 WebMethod 调用该函数,您应该创建页面的对象。例如,假设我们有一个名为“add.apsx”的页面,并且我们还有函数 AddNewRecord() 和一个 WebMethod AddRecord()。在 AddRecord() 方法中,您可以将 AddNewRecord 函数调用为 new add().AddNewRecord(),并且您可以从该函数中自由访问所有页面元素。我希望它有帮助。