我有以下代码段。我只能在非静态方法中访问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}
}
答案 0 :(得分:0)
您可以将类的实例传递给Static方法。例如,在Page_Load:
中SetTreeView(b);
这假设您将Web方法更改为接受BuildTree类。
答案 1 :(得分:0)
我认为PbcTreeView
可以控制您的网页。
在那种情况下,你运气不好。在AJAX调用期间(Web方法),您无法修改服务器端控件。 AJAX调用旨在按如下方式使用:
您正在尝试更新内部的用户界面。那不会奏效。如果需要这样做,请使用带有UpdatePanel的回发或异步回发。