asp.net,c#autocomplete扩展程序

时间:2014-09-09 06:26:45

标签: c# asp.net autocompleteextender

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具有错误的返回类型

请帮助,或建议正确的转换方式。

2 个答案:

答案 0 :(得分:0)

使用Lambda表达式将outsideEntities列表传递给参数,一旦触发事件,它将自动更改。无需返回此列表。 您可以使用此示例并为事件更改

    lnkSynEvent.Click += 
               new EventHandler((s,e)=>lnkSynEvent_Click(s, e, your_parameter));

要小心,相同的行可能在事件中多次被激活,即使事件只被触发一次

答案 1 :(得分:0)

错误是因为: 我在点击事件中使用了图像按钮,并且对于相同的功能,我将它用于两种不同类型的参数,即

onsearch(发件人,eventargs e), 和 onsearch(字符串a,int计数)

在我的情况下,我可以删除按钮,因为我将其转换为自动完成扩展器,因此不需要搜索按钮。

谢谢你的帮助!