[英]How do I call a non-static method (that uses a WebControl) with a static method?
我有以下代码片段。 我只能以非静态方法访问PbcTreeView
,因此在Page_Load期间将其调用。 但是,setTreeView()方法无法访问对象b
不能调用buildTreeView()方法。 (根据WebMethod规则,setTreeView()必须为静态,而buildTreeView不能为静态,因为它使用TreeView)。 如何获得与方法中具有的b.buildTreeView()
类似的功能?
谢谢
protected void Page_Load(object sender, EventArgs e)
{
BuildPbcTree b = new BuildPbcTree(PbcTreeView);
}
[WebMethod]
public static void setTreeView()
{
b.buildTreeView(); //how do I do this??
}
public class BuildTree
{
TreeView Tree;
public BuildTree(TreeView t)
{
Tree = t;
}
public void buildTreeView() {...//implementation}
}
您可以将类的实例传递给Static方法。 例如,在您的Page_Load中:
SetTreeView(b);
假定您将Web方法更改为接受BuildTree类。
我认为PbcTreeView
是您页面上的某些控件。
在这种情况下,您很不走运。 您不能在AJAX调用(Web方法)期间修改服务器端控件。 AJAX调用的设计用途如下:
您正在尝试更新Web方法内的用户界面。 那行不通。 如果需要执行此操作,请使用带有UpdatePanel的回发或异步回发。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.