Asp.net ajaxtoolkit自动完成不工作

本文关键字:工作 net ajaxtoolkit Asp | 更新日期: 2023-09-27 18:16:46

我尝试工作AutoCompleteExtender,但它不工作。我使用ajaxToolkit和web服务文件。两者都没有误差。我认为脚本可能是错误的,请给我修复的建议。

< ajaxToolkit:AutoCompleteExtender
                           runat="server" 
                            BehaviorID="AutoCompleteEx"
                            ID="autoComplete1" 
                            TargetControlID="TextBox"
                            ServicePath="AutoComplete.asmx" 
                            ServiceMethod="GetCompletionList"
                            MinimumPrefixLength="2" 
                            CompletionInterval="1000"
                            EnableCaching="true"
                            CompletionSetCount="20"
                            CompletionListCssClass="autocomplete_completionListElement" 
                            CompletionListItemCssClass="autocomplete_listItem" 
                            CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
                            DelimiterCharacters=";, :"
                             OnClientShowing="true" >
                                  <Animations>
                                <OnShow>
                                    <Sequence>
                                        <OpacityAction Opacity="0" />
                                        <HideAction Visible="true" />

                                        <ScriptAction Script="
                                            // Cache the size and setup the initial size
                                            var behavior = $find('AutoCompleteEx');
                                            if (!behavior._height) {
                                                var target = behavior.get_completionList();
                                                behavior._height = target.offsetHeight - 2;
                                                target.style.height = '0px';
                                            }" />

                                        <Parallel Duration=".4">
                                            <FadeIn />
                                            <Length PropertyKey="height" StartValue="0" EndValueScript="$find('AutoCompleteEx')._height" />
                                        </Parallel>
                                    </Sequence>
                                </OnShow>
                                <OnHide>
                                    <Parallel Duration=".4">
                                        <FadeOut />
                                        <Length PropertyKey="height" StartValueScript="$find('AutoCompleteEx')._height" EndValue="0" />
                                    </Parallel>
                                </OnHide>
                            </Animations>
                            </ajaxToolkit:AutoCompleteExtender>

AutoComplete.asmx:

 public string[] GetCompletionList(string prefixText, int count)
    {

        SqlConnection cn = new  SqlConnection(ConfigurationManager.AppSettings["U"].ToString());
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = cn;
        cmd.CommandType = CommandType.Text;
        cmd.CommandText = "select * from Stoc  WITH (NOLOCK) where  KeySentences like @myParameter";
        cmd.Parameters.AddWithValue("@myParameter", "%" + prefixText + "%");
        try
        {
            cn.Open();
            cmd.ExecuteNonQuery();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            da.Fill(ds);
        }
        catch (Exception ex)
        {
        }
        finally
        {
            cn.Close();
        }
        dt = ds.Tables[0];
        //Then return List of string(txtItems) as result
        List<string> txtItems = new List<string>();
        String dbValues;
        foreach (DataRow row in dt.Rows)
        {
            //String From DataBase(dbValues)
            dbValues = row["KeySentences"].ToString();
            dbValues = dbValues.ToLower();
            txtItems.Add(dbValues);
        }
        return txtItems.ToArray();
    }

谢谢你的回答

Asp.net ajaxtoolkit自动完成不工作

我用ajaxtoolkit4.5错误测试这个属性。

OnClientShowing="true" .

不确定你想做什么,但为我删除这个工作。(我复制你的代码删除数据库连接和工作)