想做一个文本自动补全功能!(注释:这里的自动补全并非只是与数据库交互一次,可能是2次,也可能是3此,直到找到自己想要的数据为止。) 输入一个关键词组查询的功能已经做出来了,textbox里面的文本靠空格区分, 第一个关键词组没有找到,紧接着输入第二个词组,中间用空格分开,后台再用spilt分割,再往数据库查询。 查询的结果由86条变为了2条,但是不返回了,下拉的地方变为了空。
我初步断定是因为前面的数据未清空, 主要是前台的那些东西(下拉框的结果)不好让它消失。
还有一点就是不能跟着id一起返回 有什么好办法,因为查询出来的东西是一个id和Name 我要靠这个id 进一步进行查询 部分代码:
前台: <ajaxToolkit:AutoCompleteExtender runat="server" CompletionInterval="100"
MinimumPrefixLength="2" ServiceMethod="GetTextString"
ServicePath="BaiduQuerry.asmx" TargetControlID="txtQuerryContent"
CompletionSetCount="10">
</ajaxToolkit:AutoCompleteExtender><asp:TextBox ID="txtQuerryContent" runat="server" Width="400px"></asp:TextBox></td><td>
<asp:Button ID="btnQuerry" runat="server" Text="查 找" onclick="btnQuerry_Click" /> 后台webservers.cs private IList<QBugTchild> qBugTchildItem = new List<QBugTchild>();
private BQBugTchild bQBugTchild = new BQBugTchild();
[WebMethod]
public string[] GetTextString(string prefixText, int count)
{
//prefixText = "";
string[] content;
string[] strArray = new string[count];
if (prefixText.Contains(" "))
{
content = prefixText.Split(' ');
//if (content[1] == "")
//{ }
//else
//{
qBugTchildItem = bQBugTchild.GetAllByContent(content);
for (int i = 0; i < count; i++)
{
strArray[1] += prefixText + qBugTchildItem[i].QBugTchildName;
}
//return strArray;
//}
}
else
{
content = prefixText.Split(' ');
qBugTchildItem = bQBugTchild.GetAllByContent(content);
for (int i = 0; i < count; i++)
{
strArray[i] += prefixText + qBugTchildItem[i].QBugTchildName;
}
}
//strArray = qBugTchildItem;
return strArray;
}
}
我初步断定是因为前面的数据未清空, 主要是前台的那些东西(下拉框的结果)不好让它消失。
还有一点就是不能跟着id一起返回 有什么好办法,因为查询出来的东西是一个id和Name 我要靠这个id 进一步进行查询 部分代码:
前台: <ajaxToolkit:AutoCompleteExtender runat="server" CompletionInterval="100"
MinimumPrefixLength="2" ServiceMethod="GetTextString"
ServicePath="BaiduQuerry.asmx" TargetControlID="txtQuerryContent"
CompletionSetCount="10">
</ajaxToolkit:AutoCompleteExtender><asp:TextBox ID="txtQuerryContent" runat="server" Width="400px"></asp:TextBox></td><td>
<asp:Button ID="btnQuerry" runat="server" Text="查 找" onclick="btnQuerry_Click" /> 后台webservers.cs private IList<QBugTchild> qBugTchildItem = new List<QBugTchild>();
private BQBugTchild bQBugTchild = new BQBugTchild();
[WebMethod]
public string[] GetTextString(string prefixText, int count)
{
//prefixText = "";
string[] content;
string[] strArray = new string[count];
if (prefixText.Contains(" "))
{
content = prefixText.Split(' ');
//if (content[1] == "")
//{ }
//else
//{
qBugTchildItem = bQBugTchild.GetAllByContent(content);
for (int i = 0; i < count; i++)
{
strArray[1] += prefixText + qBugTchildItem[i].QBugTchildName;
}
//return strArray;
//}
}
else
{
content = prefixText.Split(' ');
qBugTchildItem = bQBugTchild.GetAllByContent(content);
for (int i = 0; i < count; i++)
{
strArray[i] += prefixText + qBugTchildItem[i].QBugTchildName;
}
}
//strArray = qBugTchildItem;
return strArray;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货