如何将dropdownlist调用到静态方法中

本文关键字:静态方法 调用 dropdownlist | 更新日期: 2024-10-18 23:39:05

我有一个静态方法,即

    [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控制下拉列表

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

如何将dropdownlist调用到静态方法中

您可以将列表从调用web方法的位置返回到ajax,并将其从ajax本身绑定。控件不会进入web方法。

Adil在此处回答

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

静态成员

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

由于它只被调用一次,您可以将值本身传递给

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;
}