【问题标题】:How to get controls in static web method如何在静态 Web 方法中获取控件
【发布时间】:2012-01-23 06:04:17
【问题描述】:

我有一个[WebMethod],我想使用以下代码为文本框赋值:

[WebMethod]
public static void MyMethod(string s)
{
     //TextBox1.Text = s;   //Here how can i access the textbx?
}

【问题讨论】:

标签: c# asp.net static pagemethods


【解决方案1】:

你不能。

[WebMethod]s 的全部意义在于它们不运行 ASP.Net 页面生命周期。这样,它们既快速又可并行化。
您的控件不存在。

相反,您应该使用 Javascript(更好)或 UpdatePanel(更差)。

【讨论】:

  • 如果我无法使用 Web 方法(有一个至关重要的 c# 库),有没有办法访问页面的标记来执行诸如发送发生某事的警报之类的操作?
【解决方案2】:

在静态方法的情况下(即页面方法异步调用),整个页面不会被回发..因此服务器上没有关于页面控件(文本框或其他)的信息..

服务器在渲染时不会保留任何控件的状态,除非这样做(会话或任何其他状态管理)..

因此,如果您想使用页面控件的值之一,请在异步请求本身中发送此类信息并处理这些值并返回响应..并将其分配给客户端脚本中的相应控件..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多