在第一次单击时自动填充AutoCompleteExtender以及所有可能性

时间:2017-06-21 16:46:48

标签: javascript c# jquery asp.net

我正在尝试使用autoCompleteExtender填充文本框的焦点所有可能性。到目前为止,我没有运气。我已经尝试在textbox标签中添加onfucus来调用一个调用webmethod的js函数来从数据表中填充而没有运气。正在调用web方法,但页面上没有显示任何内容。只有在文本框中输入内容后才会显示任何建议。 这是aspx页面控件:

<div title="Model" runat="server" style="text-align:left; padding:20px"><strong>Model</strong>
                <asp:TextBox ID="tbModel" runat="server" onfocus="ModelTBOnFocus()"></asp:TextBox>
                <div id="ModelListPlacement" style="height:100px; overflow-y:scroll;" ></div>
                    <ajaxToolkit:AutoCompleteExtender ID="tbModel_AutoCompleteExtender" runat="server" DelimiterCharacters=""
                        Enabled="True" ServiceMethod="GetListofModels" MinimumPrefixLength="1" EnableCaching="true"
                        ServicePath="" TargetControlID="tbModel" CompletionInterval="50" CompletionSetCount="40"
                        CompletionListElementID="ModelListPlacement"></ajaxToolkit:AutoCompleteExtender>
            </div>

以下是CodeBehind webMethod:

[System.Web.Script.Services.ScriptMethod()]
        [System.Web.Services.WebMethod]
        public static List<string> GetListofModels(string prefixText)
        {
            using (SqlConnection sqlconn = new SqlConnection(GetConnectionStringValue("")))
            {
                sqlconn.Open();
                SqlCommand cmd = new SqlCommand("SELECT DISTINCT(Model) FROM Assets WHERE Model like '" + prefixText + "%' " + ModelQuery, sqlconn);
                cmd.Parameters.AddWithValue("@Model", prefixText);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                List<string> Models = new List<string>();
                TextInfo myTI = CultureInfo.CurrentCulture.TextInfo;
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string model = myTI.ToTitleCase(dt.Rows[i]["Model"].ToString().ToLower());
                    Models.Add(model);
                }
                return Models;
            }
        }

这是有效的代码。我只是试图在文本框聚焦时显示所有可能性。任何帮助将非常感激。谢谢!

编辑: 这个js也在工作,但是在输入内容之前我没有得到任何建议。 这是调用函数的javascript代码:

<script type="text/javascript">
        function ModelTBOnFocus() {
            PageMethods.GetListofModels("");
        }
</script>

1 个答案:

答案 0 :(得分:0)

找到我的答案: 为了解决这个问题,我必须设置MinimumPrefixLength =“0”