【问题标题】:bind value and text in textbox using ajax使用ajax在文本框中绑定值和文本
【发布时间】:2012-10-12 20:46:37
【问题描述】:

我有一个TextBox,如果我在其中键入任何文本值,则使用 AJAX 从数据库中获取并显示结果,但我必须根据此 AJAX 数据在 TextBox 中绑定不同的值和文本,即我必须显示来自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>

【问题讨论】:

  • 请说得更具体一些,您在这里遇到了什么错误。不要让我们猜测什么是行不通的。
  • 不,它正在工作,但问题是在这个文本框中动态地在 ul 中添加 li 但我必须将 li 值绑定到列名 AcctCode 并且在文本中我必须绑定 AcctName 即我已经使用;分隔符来绑定结果还是我应该向你发送项目的示例代码
  • 嘿,我已经使用了你的帖子jqueryui.com/autocomplete/#custom-data,但是在这种情况下,我如何从 ajax bcoz 绑定这个值和描述,它是静态分配的,我必须在 desc 中绑定 accname,在这个值中绑定 acccode标签,所以我该如何绑定它

标签: asp.net jquery


【解决方案1】:

input 类型为text 的元素的情况下,文本和值是相同的,并且不能不同。

您可以查看此示例:jQuery UI Autocomplete - Combobox。它展示了如何自定义自动完成,以便将 select 元素转换为具有自动完成功能的 input 元素。

作为替代方案,您可以修改此示例:jQuery UI Autocomplete - Custom data and display 以便将值绑定到 *data-** 属性并在以后手动处理发布正确的值。

当您选择您的方法时,我可能会提供进一步的帮助。

更新

您可以查看此答案以获得第二种情况的示例解决方案:jQuery AutoComplete multiple Output

【讨论】:

    猜你喜欢
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多