1)我有一个文本框来输入项目的首字母, 2)点击一个搜索按钮,出现一个列表框,显示匹配的搜索。 3)我想将其转换为自动完成扩展程序,并希望删除列表框。 以下是我试过的代码:
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public List<string> OnSearchEntity(string prefixText, int count)
{
List<string> outsideEntities = new List<string>();
DataTable dtOutsideEntity = COIOrganizationCollection.GetOrganizations(prefixText);
for (int i = 0; i < dtOutsideEntity.Rows.Count; i++)
{
outsideEntities.Add(dtOutsideEntity.Rows[i]["Name"].ToString());
}
return outsideEntities;
}
但是显示错误:
错误82'OnSearchEntity'没有重载匹配委托'System.Web.UI.ImageClickEventHandler'
我也尝试过更改参数,即。
public List<string> OnSearchEntity(object sender, ImageClickEventArgs e)
{
List<string> outsideEntities = new List<string>();
DataTable dtOutsideEntity =COIOrganizationCollection.GetOrganizations(entityName.Text.Trim());
for (int i = 0; i < dtOutsideEntity.Rows.Count; i++)
{
outsideEntities.Add(dtOutsideEntity.Rows[i]["Name"].ToString());
}
return outsideEntities;
}
它再次出错: 错误83'System.Collections.Generic.List具有错误的返回类型
请帮助,或建议正确的转换方式。
答案 0 :(得分:0)
使用Lambda表达式将outsideEntities列表传递给参数,一旦触发事件,它将自动更改。无需返回此列表。 您可以使用此示例并为事件更改
lnkSynEvent.Click +=
new EventHandler((s,e)=>lnkSynEvent_Click(s, e, your_parameter));
要小心,相同的行可能在事件中多次被激活,即使事件只被触发一次
答案 1 :(得分:0)
错误是因为: 我在点击事件中使用了图像按钮,并且对于相同的功能,我将它用于两种不同类型的参数,即
onsearch(发件人,eventargs e), 和 onsearch(字符串a,int计数)
在我的情况下,我可以删除按钮,因为我将其转换为自动完成扩展器,因此不需要搜索按钮。
谢谢你的帮助!