【问题标题】:Asp.Net AutoComplate ListAsp.Net 自动完成列表
【发布时间】:2015-03-07 16:27:40
【问题描述】:

我有问题自动编译扩展器我想在 mmaster 页面中使用自动编译。

ASPX 代码

<div class="col-xs-12 col-sm-12 col-md-5 top-search-holder no-margin">
                            <div class="search-area">
                                <div class="control-group" style="background-color: white">
                                    <asp:TextBox runat="server" ID="TxtArama" CssClass="search-field" placeholder="Aranacak Kelimeyi girin..."></asp:TextBox>
                                    <asp:AutoCompleteExtender ID="TxtArama_AutoCompleteExtender" 
                                        runat="server" 
                                        DelimiterCharacters="" 
                                        Enabled="True" 
                                        ServiceMethod="GetProducts" 
                                        ServicePath="AutoComplate.asmx" 
                                        TargetControlID="TxtArama">
                                    </asp:AutoCompleteExtender>

                                    <a class="search-button" href="#" runat="server" onserverclick="Aramaci_OnServerClick"></a>
                                </div>
                            </div>
                        </div>

AutoComplate.asmx

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService()]
//[System.ComponentModel.ToolboxItem(false)]
public class AutoComplate : System.Web.Services.WebService
{

    [WebMethod()]
    [System.Web.Script.Services.ScriptMethod()]
    public string[] GetProducts(string prefixText,int count)
    {
        DataTable DT = new DataTable();
        ArrayList PN = new ArrayList();
        DT = DbClass.GetDataTable("SELECT * FROM Products WHERE ProductName LIKE '%" + prefixText + "%'", "MySql");
        if (DT.Rows.Count>0)
        {
            for (int i = 0; i < DT.Rows.Count; i++)
            {
                PN.Add(DT.Rows[i]["ProductName"].ToString());
            }

        }
        return (string[]) (PN.ToArray(typeof (string)));
    }
}

我输入了单词调用方法获取数据,但在文本框中没有看到下面的列表。 怎么了? 请帮忙。

【问题讨论】:

    标签: c# asp.net database autocomplete ajaxcontroltoolkit


    【解决方案1】:

    您似乎缺少工具脚本管理器标签:

    <asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server" EnablePageMethods="True" />  
    

    你可以把它放在 autocompleteExtender 上面。

    【讨论】:

      【解决方案2】:

      我认为你的 web 方法根本没有被调用。 尝试像这样从浏览器调用 asmx 文件:

      http://localhost/app1/Autocomplete.asmx
      

      像这样更改您的 html 代码:

      <asp:TextBox runat="server" ID="TxtArama" CssClass="search-field"></asp:TextBox>
          <asp:AutoCompleteExtender MinimumPrefixLength="2" CompletionInterval="100" EnableCaching="false" CompletionSetCount="10" TargetControlID="TxtArama" BehaviorID="AutoCompleteEx" ID="AutoCompleteExtender1" ServicePath="~/AutoComplete.asmx" ServiceMethod="GetProducts" runat="server" FirstRowSelected="false"                Enabled="True">
          </asp:AutoCompleteExtender>
      

      它应该在文本框中输入第二个字符后调用 webmethod (MinimumPrefixLength="2")

      【讨论】:

      • ok 方法正在调用真正的返回数组,但未在下面列出返回数组项的文本框 webmethod 调用没有问题。没关系。
      猜你喜欢
      • 2011-05-12
      • 2012-06-12
      • 1970-01-01
      • 1970-01-01
      • 2012-06-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-04
      • 1970-01-01
      相关资源
      最近更新 更多