我有一个返回的公共静态列表,因为我从AJAX调用到[WebMethod]使用它。
我需要从中调用受保护的void,但我不能从静态调用非静态成员。
这是我的网络方法,当时它调用PopulateBasedOnOpen,此刻是另一个静态的:
[System.Web.Services.WebMethod]
public static string CustType(string custtype)
{
string test;
test = custtype.ToString();
PopulateBasedOnOpen(custtype);
return test;
}
问题是在我的PopulateBasedOnOpen中我需要设置在aspx中定义的文本框的值,这是我在静态中无法做到的:
protected static string PopulateBasedOnOpen(string CustType)
{
//set values of textboxes cant be done here
return CustType;
}
答案 0 :(得分:1)
您可以通过controls
调用使用网络方法不更改服务器端的服务器ajax
。服务器控制状态在ViewState
中维护,并且未在ajax调用中传递。您可以从服务器端返回值并在javascript / jQuery
中使用该值并将其分配给服务器生成的html控件
答案 1 :(得分:0)
概念:
受保护:可在 类及派生类实例中访问。
static :可以与类,字段,方法,属性,运算符,事件和构造函数一起使用,但不能与索引器,析构函数或类以外的类型一起使用。类上的static修饰符意味着该类不能实例化,并且其所有成员都是静态的。
请确保您符合这些条件,以便能够正确调用您的方法。也许您可以将protected static string PopulateBasedOnOpen(string CustType)
更改为public static string PopulateBasedOnOpen(string CustType)