我有一个
的静态方法
[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控件下拉列表
如何在静态方法中传递我的下拉列表?
答案 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 强>
静态方法和属性无法访问非静态字段和 包含类型的事件,他们无法访问实例 任何对象的变量,除非它在方法中显式传递 参数。