2

我尝试使用 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>

自动完成.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();

    }

谢谢你的回答。。

4

1 回答 1

0

我在此属性上使用我的 ajaxtoolkit4.5 错误进行测试。

OnClientShowing="true".

不确定您要做什么,但请为我删除这项工作。(我通过删除数据库连接和工作来复制您的代码)

于 2013-06-16T13:09:54.457 回答