1

私は多くのサイトで自分の答えを見つけようとしましたが、私のコードではすべてが正しいと思いますが、それでもオートコンプリートエクステンダーは機能しません。

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods = "true">
                </asp:ScriptManager>

                <asp:TextBox ID="txtName" runat="server" Width="190px" CssClass="TextBox"></asp:TextBox>

                 <cc1:AutoCompleteExtender
                ID="AutoCompleteExtender1" ServiceMethod="GetNamesList" 
MinimumPrefixLength="1"
CompletionInterval="1000" EnableCaching="true" CompletionSetCount="10" 
TargetControlID="txtName" UseContextKey="True"
 runat="server">

                </cc1:AutoCompleteExtender>  

[System.Web.Script.Services.ScriptMethod()] [System.Web.Services.WebMethod]

public string[] GetNamesList(string prefixText, int count, string contextKey)
{
    DataSet dtst = new DataSet();
    SqlConnection sqlCon = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["ConStr"]);
    string strSql = "SELECT FirstName FROM finex.tbl_SenderInfo WHERE FirstName LIKE '" + prefixText + "%' ";
    SqlCommand sqlComd = new SqlCommand(strSql, sqlCon);
    sqlCon.Open();
    SqlDataAdapter sqlAdpt = new SqlDataAdapter();
    sqlAdpt.SelectCommand = sqlComd;
    sqlAdpt.Fill(dtst);
    string[] cntName = new string[dtst.Tables[0].Rows.Count];
    int i = 0;
    try
    {
        foreach (DataRow rdr in dtst.Tables[0].Rows)
        {
            cntName.SetValue(rdr["FirstName"].ToString(), i);
            i++;
        }
    }

    catch { }

    finally
    {
        sqlCon.Close();
    }
    return cntName;
}
4

1 に答える 1

0

Web メソッドを含むページの名前を含む <asp:AutoCompleteExtender> タグ内で、おそらく次のようなものが必要になるでしょう。

ServicePath="MyFile.aspx"

また、aspx ファイルの先頭で次のことを試してください。

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="ajaxToolkit" %>
<%@ Register TagPrefix="asp" Namespace="AjaxControlToolkit" Assembly="AjaxControlToolkit" %>

そして、これはあなたのページのメインコンテンツ内のどこかで、開始のbodyタグの後に言ってください:

<ajaxToolkit:ToolkitScriptManager ID="ToolkitScriptManager1" EnablePageMethods="true"
    runat="server">
</ajaxToolkit:ToolkitScriptManager>

動作するプロジェクトの 1 つからこれらの行を切り取ったところです。追加した方法によっては、IDE に既に含まれているものもあります。追加する前に、それらが既に存在するかどうかを確認してください。

于 2012-12-11T07:58:01.057 に答える