【发布时间】:2012-04-04 20:28:19
【问题描述】:
我在文本框中使用自动完成功能,值来自数据库。它工作正常。当我在文本框中输入任何值时,我需要在列表视图中执行此自动完成操作。这是我的代码
<asp:TextBox ID="txtContactsSearch" runat="server"></asp:TextBox>
<cc1:AutoCompleteExtender ServiceMethod="ListView1_SelectedIndexChanged"
MinimumPrefixLength="2"
CompletionInterval="100" EnableCaching="false" CompletionSetCount="10"
TargetControlID="txtContactsSearch"
ID="AutoCompleteExtender1" runat="server" FirstRowSelected = "false">
</cc1:AutoCompleteExtender>
和
<asp:ListView ID="ListView1" runat="server" DataSourceID="SqlDataSource1">
<ItemTemplate>
<tr id="Tr1" runat="server">
<td id="Td1" runat="server">
<asp:Label ID="NameLabel" runat="server" Text='<%#Eval("regon_name") %>' />
</td>
<td id="Td2" runat="server">
<asp:Label ID="Label3" runat="server" Text='<%#Eval("code") %>' />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:DB_CGTPO_DEVEConnectionString %>"
SelectCommand="SELECT [regon_name], [code] FROM [region_test]"></asp:SqlDataSource>
和
[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static List<string> ListView1_SelectedIndexChanged(string prefixText, int count)
{
using (SqlConnection conn = new SqlConnection(""))
{
//conn.ConnectionString = ConfigurationManager
// .ConnectionStrings["constr"].ConnectionString;
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = "select regon_name from region_test where " +
"regon_name like @SearchText + '%'";
cmd.Parameters.AddWithValue("@SearchText", prefixText);
cmd.Connection = conn;
conn.Open();
List<string> customers = new List<string>();
using (SqlDataReader sdr = cmd.ExecuteReader())
{
while (sdr.Read())
{
customers.Add(sdr["regon_name"].ToString());
}
}
conn.Close();
return customers;
}
}
}
有什么建议吗?
【问题讨论】:
-
请不要重复发布相同的问题。尝试编辑您之前的问题。非常不清楚“在列表视图中执行此自动完成操作”是什么意思。
-
当我在文本框中输入这些值时,我想从数据库的列表视图中显示这些值
-
@vani 您有访问权限还是愿意使用 Telerik RadTools?如果是这样,我有一个可以分享的解决方案。
标签: c# asp.net listview autocomplete ajaxcontroltoolkit