如何从公共静态列表中调用受保护的void

时间:2013-12-19 15:27:19

标签: c# asp.net ajax webforms

我有一个返回的公共静态列表,因为我从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;
}

2 个答案:

答案 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)