[英]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.