繁体   English   中英

使用自动完成功能通过c#从ASP.NET Web窗体的数据库中获取数据?

[英]Use autocomplete to fetch data from Database in ASP.NET Web Forms with c#?

我正在修改另一个程序员使用ASP.NET Web窗体和C#开发的现有应用程序。

我必须将自动完成功能添加到一个简单的TextBox中。 当用户开始向TextBox中输入内容时, TextBox应该显示基于数据库中存储的数据的建议。 这些建议必须仅基于前缀 (已输入单词的开头部分)。

我发现了许多基于自动完成AJAX扩展程序的示例,但它基于从Web服务获取数据。 为了完成此任务,需要哪些步骤以及所需的方法和操作?

您发布的链接几乎解释了需要完成的所有操作。 观看此视频

如果您需要传递一些其他参数,请查看示例。

脚步。

1.将Textbox和Ajax Extender添加到页面并将目标ID指定为textboxid。为扩展器指定Web服务名称
2.按照上面的链接安装webservice并在浏览器中对其进行测试。
3.在webservice中编写您要检索数据的方式。 您将返回一个string []。

除了创建Web服务,您甚至可以将webmethod属性用于常规方法检查以下内容

http://www.ajaxtutorials.com/ajax-tutorials/using-autocomplete-in-the-ajax-toolkit/
http://allwrong.wordpress.com/2007/03/13/ms-ajax-autocomplete-extender-using-a-page-method/

您可以在后面的页面上简单地定义一个方法,用[WebMethod]属性装饰它,然后在下拉扩展器的ServiceMethod属性上进行设置。
该方法必须实现检索/过滤结果的逻辑,并且其签名必须与示例匹配(例如:public string [] MyMethod(string prefixText,int count))。

先决条件是拥有“ AjaxControlToolKit”。

首先,我们需要将文本框放置在updatepanel中,以便可以进行部分回发,从而避免重新加载整个页面。 使用ajax autocompleteExtender,通过它我们可以调用具有DB调用的服务方法,该方法将获取数据并填充文本框。

       <asp:UpdatePanel ID="pnlAcct" runat="server">
  <ContentTemplate>
  <asp:TextBox ID="txtAcctNum"></asp:TextBox>
  <asp:AutoCompleteExtender ID="AutoCompleteExtenderAccount" runat="server" MinimumPrefixLength="1" ServiceMethod="GetSourceAccount" ServicePath="~/AutoComplete/AutoComplete.asmx"
                                    TargetControlID="txtAcctNum" Enabled="True" CompletionSetCount="20" CompletionInterval="1000"
                                    EnableCaching="true">
                                </asp:AutoCompleteExtender>
                            </ContentTemplate>
                            <Triggers>
                                <asp:AsyncPostBackTrigger ControlID="txtAcctNum" />
                            </Triggers>
                        </asp:UpdatePanel>

可以通过添加WebService(.asmx文件)并将以下代码写入.asmx.cs文件来完成服务调用。字符串中可用的所有数据都将显示在文本框下方。

    [System.Web.Services.WebMethod]
    [System.Web.Script.Services.ScriptMethod]
     public string[] GetSourceAccount(string prefixText, int count)
     {
  List<string> lstSimilarSource = new List<string>();
  //Service call and populating the string
  lstSimilarSource = Autocomplete.GetSimilarSource(prefixText, "ACCOUNT");
   return lstSimilarSource.ToArray();
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM