我想在我的Web应用程序中填充自动完成。该列表是从数据表填充的。出于某种原因,我无法将其显示在自动填充中。我知道我从查询中获得结果,因为我可以使用消息框来查看它们。在这个例子中,我将结果限制为5jQuery自动完成不填充ASP
客户端代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="AddToMonitoring.Default" %>
<head runat="server">
<script type="text/javascript">
$(document).ready(function() {
$("#<%=txtAutoComplete.ClientID%>").autocomplete('AutoCompleteHandler.ashx');
});
</head>
<body>
<div id="inputDIV" style="font-size: x-large; font-family: Calibri;
position: relative; top: 25px; left: 25px; height: 638px; width: 1239px;">
Asset Name: <asp:TextBox id="txtAutoComplete" runat="server" />
</div>
</body>
下面是处理页面:
public class AutoCompleteHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
dsCIInfoTableAdapters.BMC_CORE_BMC_ComputerSystemTableAdapter serverTableAdapter1;
serverTableAdapter1 = new dsCIInfoTableAdapters.BMC_CORE_BMC_ComputerSystemTableAdapter();
dsCIInfo.BMC_CORE_BMC_ComputerSystemDataTable newServerTable;
newServerTable = serverTableAdapter1.GetData();
var query = (from row in newServerTable.AsEnumerable()
where row.Field<string>("Item") == "Server"
select row.Field<string>("Name")).Distinct().Take(5);
var queryArray = query.ToArray();
StringBuilder sb = new StringBuilder();
foreach (string row in queryArray)
{
context.Response.Write(sb.Append(row).Append(Environment.NewLine));
}
}
public bool IsReusable
{
get
{
return false;
}
}
}
你是否在你选择的浏览器开发工具中看到任何脚本错误(大部分是F12) – KingCronus 2013-04-29 15:44:00
你确定需要使用StringBuilder吗?似乎很奇怪。而不是'context.Response.Write(sb.Append(row).Append(Environment.NewLine));'你会尝试'context.Response.Write(row + Environment.NewLine);'希望有所帮助。 – 2013-04-29 15:47:36