我正在修改其他程序員使用ASP.NET Web窗體和C#開發的現有應用程序。使用自動完成從C#中的ASP.NET Web窗體中的數據庫中獲取數據?
我必須添加到一個簡單的文本框自動完成功能。當用戶開始向文本框輸入內容時,文本框應顯示基於存儲在數據庫中的數據的建議。建議必須基於前綴(已輸入單詞的開始部分)。
我發現很多基於autocomplete AJAX extender的示例,但它基於從Web服務獲取數據。爲了完成這項任務,步驟和所需的方法和操作是什麼?
我正在修改其他程序員使用ASP.NET Web窗體和C#開發的現有應用程序。使用自動完成從C#中的ASP.NET Web窗體中的數據庫中獲取數據?
我必須添加到一個簡單的文本框自動完成功能。當用戶開始向文本框輸入內容時,文本框應顯示基於存儲在數據庫中的數據的建議。建議必須基於前綴(已輸入單詞的開始部分)。
我發現很多基於autocomplete AJAX extender的示例,但它基於從Web服務獲取數據。爲了完成這項任務,步驟和所需的方法和操作是什麼?
你發佈的鏈接很好解釋了需要完成的一切。按照this video。
如果您需要通過一些其他參數檢查this示例。
步驟。
1.新增文本框和Ajax擴展到頁面並指定目標ID爲textboxid .Specify Web服務名稱到延長
2.Implement web服務在上面的鏈接,並在瀏覽器中測試它。
3.在webservice中編寫你想要檢索數據的方式。你將返回一個字符串[]。
而不是創建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,使用它我們可以調用一個服務方法,該服務方法正在進行數據庫調用,該方法將獲取數據並填充文本框。
<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寫下面的代碼來完成以往file.What字符串中的可用數據將顯示框的下面。
[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();
}
感謝您的回答。有沒有辦法nto使用web服務?例如調用一個方法,因爲它發生在MVC與JSon? – CiccioMiami
@CiccioMiami檢查我編輯的答案我添加了WebMethod的一部分。 –
非常感謝!我找到了我正在尋找的東西! – CiccioMiami