0

AjaxToolkitAutoCompleteExtenderを使用したいと思います。WebServiceがトリガーされ、戻り値にブレークポイントを設定すると、データが返されていることがわかります。ただし、AutoCompleteExtenderは結果を表示していません。

私はこのstackoverflowスレッドを読みました:AutoCompleteExtenderが起動し、Webサービスが結果を返していますが、これらは表示されていません

しかし、その答えは私が抱えている問題を解決しません。

これが私のコードです:

ASPX

<asp:ToolkitScriptManager ID="asm" runat="server" EnablePageMethods="true" EnablePartialRendering="true"></asp:ToolkitScriptManager>
<asp:UpdatePanel ID="upApprovedBy" runat="server">
    <ContentTemplate>
        <asp:TextBox id="txtApprovedBy" runat="server" AutoComplete="Off"></asp:TextBox>
        <asp:AutoCompleteExtender 
            runat="server" 
            ID="ac_txtApprovedBy"  
            CompletionInterval="500"
            TargetControlID="txtApprovedBy"
            ServiceMethod="SearchWinUsers"
            CompletionSetCount="20"                                                                                                                         
            MinimumPrefixLength="2" 
        >
        </asp:AutoCompleteExtender>
    </ContentTemplate>
</asp:UpdatePanel>

ASPX.CS

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public static string[] SearchWinUsers(string prefixText, int count)
{
    logic common = new logic();
    string[] SelectedApprovers = new string[0];
    try
    {
        DataTable dt = new DataTable();
        string sql = "SELECT TOP(" + count + ") FirstName + ' ' + LastName AS DisplayName FROM USERSTABLENAME WHERE (IsDeActivated = 0) AND ((FirstName LIKE '%" + prefixText + "%') OR (LastName LIKE '%" + prefixText + "%')) ORDER BY FirstName";
        dt = common.getDataTable(sql);
        SelectedApprovers = new string[dt.Rows.Count];
        int i = 0;
        foreach (DataRow dr in dt.Rows)
        {
            SelectedApprovers.SetValue(dr["DisplayName"].ToString(), i);
            i++;
        }
        dt.Dispose();
    }
    catch (Exception ex)
    {
        common.alert("Error in page.location.<br>ERROR=" + ex.Message);
    }

    return SelectedApprovers;
}

任意の提案をいただければ幸いです!

ASPXスニペットのコードは次の階層に存在することに注意してください。ページ>TabContainer>TabPanel>FormView>このコードはここにあります

4

1 に答える 1

0

ついに動作するようになりました!!!

Webサービスを*.ASPX.CSから*.ASMXに移動しました

それは私が抱えていた問題を解決しました。

同じ問題が発生している場合は、このチュートリアルを確認してください。それは私を正しい方向に向かわせました!

http://www.codeproject.com/Articles/201099/AutoComplete-With-DataBase-and-AjaxControlToolkit#

于 2012-07-03T21:04:56.667 に答える