我在 ASP.NET 中有一个网页,其中包含以下代码Default.aspx:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="../Scripts/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="SearchHandler.js" type="text/javascript"></script>
</head>
<body>
<form id="form1" runat="server">
<asp:TextBox ID="search" runat="server"></asp:TextBox>
<asp:ListBox ID="listbox" runat="server" SelectionMode="Multiple"></asp:ListBox>
</form>
</body>
</html>
在我的SearchHandler.js中,我有以下代码:
$(document).ready(function () {
$('#search').keyup(function () {
//..do something here and populate listbox from database query result.
//..call C# function GetItems(), passing input as parameter and use to populate ListBox.
});
});
在Functions.cs中:
public class Functions
{
Database db = new Database();
public List<string> GetItems(string searchinput)
{
List<string> items = db.DoSomething(searchinput);
return items;
}
}
抱歉,我对此很陌生,但是我将如何完成上面的代码以填充同一页面上的列表框?基本上,每次用户在文本框中“按键”时,列表框的内容都会刷新。我想GetItems()
从Functions.cs类文件中调用一个 C# 函数。
新编辑:
基本上GetItems()
需要一个键输入,每次按下一个键,它都会触发一个数据库查询来检索相关记录。我有一个如下表(例如):
TableA
Name Country
Tom England
Bill USA
John Australia
Jim China
Harry Belgium
Johnathan France
因此,当有人在搜索框中输入“John”时,“Australia”和“France”将出现在列表框中。
SELECT Country FROM TableA WHERE Name LIKE '%John%'
编辑 21/06/12:如果我不使用 KeyUp 事件而是使用按钮事件,这会使其成为更好的方案吗?