-2

入力する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>
4

1 に答える 1

0

inputtype の要素の場合text、テキストと値は同じものであり、異なるものであってはなりません。

このサンプルを見ることができます: jQuery UI Autocomplete - Combobox。要素をオート​​コンプリート機能を持つselect要素に変換するために、オートコンプリートをカスタマイズする方法を示します。input

別の方法として、次のサンプルを変更することもできます: jQuery UI Autocomplete - Custom data and displayで、値を *data-** 属性にバインドし、後で適切な値を手動でポストする処理を行います。

あなたがあなたのアプローチを選択するとき、私はさらに助けることができるかもしれません.

アップデート

この回答を見て、2 番目のシナリオのサンプル ソリューションを取得できます: jQuery AutoComplete 複数の出力

于 2012-10-12T08:09:55.373 に答える