如何访问静态Web方法内的页面控件?
我已经使用jQuery使用静态WebMethod
方法调用了一个代码隐藏方法。
该Web方法调用是成功的,但当试图访问文本框控件时,它是给出错误。 非静态字段,方法或属性需要对象引用。
[WebMethod] public static Savedata() { //code to insert data to DB //after inserting data successfully i need to change the text box text like following. txtStatus.Text="Data Received"; }
正如@Tim Schmelter所提到的,这并不能回答这个问题,因为你不能从webmethod访问页面的控件。
请从静态函数中通过asp.net访问一个控件
public static void Savedata() { if (HttpContext.Current != null) { Page page = (Page)HttpContext.Current.Handler; TextBox TextBox1 = (TextBox)page.FindControl("TextBox1"); TextBox TextBox2 = (TextBox)page.FindControl("TextBox2"); } }
以上方法是为了find控制值。 [WebMethod]的重点在于它们不运行ASP.Net页面生命周期。 这样,它们快速并行。 您的控件不存在。
相反,你应该使用Javascript(更好)或UpdatePanel(更糟糕)。
你的问题是如何在静态方法中获取控件的重复
Web方法接受的答案是错误的。
正如Tim Schmelter在评论中提到的那样:
您不能从webmethod访问页面的控件
这是真的,因为Web方法不带有页面状态。 这不是一个完整的回发。 而只是会话cookie与请求一起旅行。 你必须做一个完整的页面回发来获取或设置控制值。