我有一个TextBox
,如果我键入任何文本值是使用AJAX从数据库中提取的,结果会显示但我必须在TextBox
的基础上绑定不同的值和文本AJAX数据,即我必须显示列AcctName
中的文本和列AcctName
中的值,但我无法执行此操作。
这是我的服务器端代码:
[WebMethod]
public static List<string> GetAutoCompleteData(string partyname)
{
List<string> result = new List<string>();
DataTable dt;
AccountInfo oAccount = new AccountInfo();
dt = oAccount.GetAccountInfo((int)HttpContext.Current.Session["CompCode"], 0);
if (dt.Rows.Count > 0)
{
for (int i = 0;i < dt.Rows.Count; i++)
{
result.Add(dt.Rows[i]["AcctCode"].ToString() + ";"+ result.Add(dt.Rows[i]["AcctName"].ToString() + ";"););
}
}
return result;
}
HTML:
<div class="ui-widget">
<input id="txtSearch" runat="server" class="autosuggest" style="min-width:100px;height:20px;" type="text" />
</div>
JavaScript的:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
<script>
$(document).ready(function() {
SearchText();
});
function SearchText() {
$(".autosuggest").autocomplete({
source: function(request, response) {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "PurchaseOrder.aspx/GetAutoCompleteData",
data: "{'partyname':'" + document.getElementById('ctl00_ContentPlaceHolder1_txtSearch').value + "'}",
dataType: "json",
success: function(data) {
response(data.d);
},
error: function(result) {
alert("Error");
}
});
}
});
}
</script>
答案 0 :(得分:0)
如果input
类型的text
元素,则文本和值是相同的,并且它们不能不同。
您可以查看此示例:jQuery UI Autocomplete - Combobox。它显示了如何自定义自动填充功能,以便将select
元素转换为具有自动填充功能的input
元素。
作为替代方法,您可以修改此示例:jQuery UI Autocomplete - Custom data and display,以便将值绑定到* data - **属性,并在以后手动处理正确的值。
当您选择方法时,我可能会进一步提供帮助。
<强>更新强>
您可以查看此答案,以获取第二种方案的示例解决方案:jQuery AutoComplete multiple Output