Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用c#从ASP.NET Web表单中的数据库中获取数据?_C#_Ajax_Webforms - Fatal编程技术网

使用c#从ASP.NET Web表单中的数据库中获取数据?

使用c#从ASP.NET Web表单中的数据库中获取数据?,c#,ajax,webforms,C#,Ajax,Webforms,我正在修改另一个程序员使用ASP.NET Web窗体和C#开发的现有应用程序 我必须在一个简单的文本框中添加自动完成功能。当用户开始在文本框中输入内容时,文本框应根据数据库中存储的数据显示建议。建议必须仅基于前缀(已输入单词的开头部分) 我发现了许多基于的示例,但它是基于从Web服务获取数据的。完成这项任务的步骤、所需方法和操作是什么 你发布的链接几乎解释了所有需要做的事情。跟着 如果需要传递一些附加参数,请检查示例 步骤 1.将Textbox和Ajax Extender添加到页面,并将目标id

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

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


我发现了许多基于的示例,但它是基于从Web服务获取数据的。完成这项任务的步骤、所需方法和操作是什么

你发布的链接几乎解释了所有需要做的事情。跟着

如果需要传递一些附加参数,请检查示例

步骤

1.将Textbox和Ajax Extender添加到页面,并将目标id指定为textboxid。为Extender指定web服务名称
2.按照上面的链接实现webservice,并在浏览器中进行测试。
3.在webservice中编写您想要检索数据的方式。您将返回一个字符串[]

您甚至可以使用webmethod属性来执行以下常规方法检查,而不是创建webservice



您只需在页面codebehind上定义一个方法,用[WebMethod]属性修饰它,然后在下拉扩展程序的ServiceMethod属性上设置它。

方法必须实现检索/过滤结果的逻辑,其签名必须与示例匹配(例如:public string[]MyMethod(string prefixText,int count))。

先决条件是拥有“AjaxControlToolKit”

首先,我们需要将文本框放在updatepanel中,这样可以进行部分回发,从而消除整个页面的重新加载。 使用ajax AutoCompleteXtender,我们可以使用它调用具有DB调用的服务方法,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();
    }
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
公共字符串[]GetSourceAccount(字符串前缀,整数计数)
{
List lstSimilarSource=新列表();
//服务调用和填充字符串
lstSimilarSource=Autocomplete.GetSimilarSource(前缀为“ACCOUNT”);
返回lstmilarsource.ToArray();
}

谢谢您的回答。有没有办法使用Web服务?例如,通过使用JSon调用MVC中发生的方法?@CiccioMiami检查我编辑的答案,我向其中添加了WebMethod部分。