簡體   English   中英

如何從用戶控件中使用AutoCompleteExtender?

[英]How to use an AutoCompleteExtender from within a user control?

我創建了一個用戶控件,我計划在其中每次用戶編輯某些內容時都使用該控件,並創建一個常規的ASPX頁面,我將其稱為用戶控件。 用戶cotrol包含一些文本框和一個AutoCompleteExtender。 除了擴展器之外,其他所有東西都可以正常工作。 我在許多其他APSX頁面中都使用了它,並且像一個超級按鈕一樣工作,但是由於某種原因,它似乎在這里不起作用。 調試后,通過chrome,我發現我無法訪問該方法(405)。 經過數天的整理,通過互聯網,我發現了這一點:

“可調用頁面方法是在代碼隱藏類中定義的公共靜態方法(在VisualBasic®.NET中為Shared),並使用與Web服務方法相同的WebMethod屬性進行修飾。目前,這僅限於ASPX頁面(內聯)和代碼背后的代碼-但將來可能會擴展到用戶控件和自定義控件。”

此外,偶然發現其他論壇建議使用Web服務而不是Web方法。 嘗試過此操作,仍然出現相同的(405)錯誤。 我已經被困了將近一個星期,而且我已經沒有其他選擇了。 這是不好的做法嗎,這就是為什么您不能這樣做? 我想要的是將所有內容都保留在相同的用戶控件和aspx上。

這就是我在用戶控件上使用擴展器的方式:

<aspx:AutoCompleteExtender ID="tbEntitiesAutoCompleteEx" runat="server"
      BehaviorID="tbEntitiesAutoCompleteEx" TargetControlID="tbEntity"
      UseContextKey="True" ServiceMethod="GetAutocompleteEntities"
      MinimumPrefixLength="3" CompletionSetCount="10" CompletionInterval="300"
      CompletionListCssClass="autoCompleteList"
      CompletionListItemCssClass="autoCompleteItem" 
      CompletionListHighlightedItemCssClass="autoCompleteHighlightedItem"       
      CompletionListElementID="divCodeAutoCompletePlacement"  
      OnClientPopulating="OnEntitiesPopulating" 
      OnClientPopulated="OnEntitiesPopulated" 
      OnClientItemSelected="OnEntitySelected"                                
      ShowOnlyCurrentWordInCompletionListItem="true" 
      FirstRowSelected="true" ServicePath ="~/InterventionsWebService.asmx" />

我已將服務路徑更改為~/InterventionsWebService.asmx (位於同一目錄中的Web服務), CreateEdit.aspx (我稱為用戶控件的頁面)和CreateEdit.ascx (用戶控件是自已的),但均CreateEdit.ascx

這是網絡方法:

[System.Web.Script.Services.ScriptMethod()]
[System.Web.Services.WebMethod]
public List<string> GetAutocompleteEntities(string prefixText, int count, string contextKey)
{
    var bbq = 0

    return new List<string>();
}

我也嘗試過使其成為靜態方法,但仍然無法正常工作。 我在var bbq = 0處有一個斷點,但由於(405)錯誤而沒有命中。 任何解釋都很好,謝謝。

我設法解決了我的問題。 我刪除了服務路徑,將Web方法放置在調用ascx的aspx中,使Web方法變為靜態並設法達到斷點。

我將WebMethod放在網頁上,並用它來調用UserControl上的方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM