Jquery / ajax:使用文本框中子字符串的ajax自动完成?

时间:2012-09-01 07:56:53

标签: jquery asp.net ajax ajaxcontroltoolkit

我在txt_Remarks中有这个asp.net文本框,我所做的是使用ajaxToolkitLibrary来指定自动完成列表的来源,其定义如下:

[WebMethod]
public string[] GetItemRemarks(string prefixText, int count)
{
    if (count == 0)
    {
        count = 10;
    }

    Random random = new Random();
    List<string> items = new List<string>(count);
    SqlCommand con = new SqlCommand();
    SqlDataReader sdr = null;
    try
    {
        SqlCommand cmd = new SqlCommand();
        cmd.CommandText = "SELECT REMARKS FROM mstRemark WHERE BranchId='"+ Globals.BranchID +"' AND Id<>1 AND REMARKS like '%" + prefixText.Trim() + "%' ";
        sdr = ExecuteReader(cmd);
        while (sdr.Read())
        {
            items.Add("" + sdr.GetValue(0));
        }
        sdr.Close();
        sdr.Dispose();
    }
    catch (Exception )
    {

    }
    return items.ToArray();
}

我想要的是,在选择一个项目premium user而不是结束自动完成后,将逗号放在那里,根据他现在正在键入的内容向用户显示新的项目列表。

说,他开始输入p ==它显示溢价,预定义,模式等等。当他点击溢价时,它被设置在文本框中,然后一个逗号放在那里,他可以再次打字,说他再次键入p ==它应该再次显示premium,预定义,模式,这次他点击模式,文本框会显示preminum, pattern并允许他这样工作直到他点击其他地方。 所以,基本上这个自动完成应该基于自定义子字符串工作,我也尝试使用$ .ajax()但没有运气,我甚至无法让它工作的事情.. 那么,怎么做呢?

编辑: 类似于stackoverflow中发生的事情当您输入开始输入标签时,它会显示一个列表,当您选择它时,它会输入到框中,然后你可以再次打字并将该标签添加到列表中..

1 个答案:

答案 0 :(得分:1)

你可以查看选择的jquery插件,它确实完全符合你所描述的内容。

http://harvesthq.github.com/chosen/