如何将dropdownlist调用为静态方法?

时间:2016-04-19 11:25:38

标签: c# asp.net

  

我有一个

的静态方法
    [System.Web.Script.Services.ScriptMethod()]
    [System.Web.Services.WebMethod]
    public static List<string> GetWorkPackages(string prefixText)
    {
        DataTable dt = getWorkpackages(ddlWp.SelectedValue);
        List<string> wps = new List<string>();
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            wps.Add(dt.Rows[i][1].ToString());
        }
        return wps;
    }

此处出现ddlWp.SelectedValue错误(当前上下文中不存在名称'ddlWp')

ddlWp是我的asp控件下拉列表

  

如何在静态方法中传递我的下拉列表?

3 个答案:

答案 0 :(得分:0)

看到它只被调用一次,你可以传递值本身

public static List<string> GetWorkPackages(string prefixText, string ddlVal)
{
    DataTable dt = getWorkpackages(ddlVal);
    List<string> wps = new List<string>();
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        wps.Add(dt.Rows[i][1].ToString());
    }
    return wps;
}

答案 1 :(得分:0)

您可以将列表返回到调用Web方法的ajax,并将其从ajax本身绑定。控制不会进入网络方法。

答案 2 :(得分:0)

Adil回答 here

Dropdownlist对象是您的类(Web页面)的非静态成员,静态方法不能访问非静态成员。调用时将dropdownList值传递给静态方法。

<强> Static Members

  

静态方法和属性无法访问非静态字段和   包含类型的事件,他们无法访问实例   任何对象的变量,除非它在方法中显式传递   参数。