0

前言:

我正在使用 ASP.NET 3.5 和 AJAXControlToolkit。我正在尝试在我正在编写的控件上使用 AutoCompleteExtender,它是一个地址控件。

Address 控件有一堆文本框,例如 Address1、Address2、City、Zip 和下拉列表,例如 State 和 Country。

设想:

我希望用户开始在 Address1 中输入,然后向他们显示与他们输入的内容相匹配的其他地址。如果他们选择一个,我需要所有其他文本框和下拉列表来填充该信息。此外,我需要他们选择的地址行的主键显示在幕后的代码中,这样我们就不会复制数据,只需添加对该 ID 的引用。

我希望这是有道理的。

到目前为止,我已经创建了 ScriptManager、WebService 和 AutoCompleteExtender。

<asp:ScriptManager ID="ScriptManager1" runat="server">
    <Services>
        <asp:ServiceReference Path="EntityService.asmx" />
    </Services>
</asp:ScriptManager>

<ajax:AutoCompleteExtender 
    runat="server" 
    ID="autoComplete1" 
    TargetControlID="txtAddress1"
    ServiceMethod="GetAddressList"
    ServicePath="EntityService.asmx"
    MinimumPrefixLength="2" 
    CompletionInterval="500"
    EnableCaching="true"
    CompletionSetCount="20" 
    CompletionListCssClass="autocomplete_completionListElement" 
    CompletionListItemCssClass="autocomplete_listItem" 
    CompletionListHighlightedItemCssClass="autocomplete_highlightedListItem"
    DelimiterCharacters=";, :"
    ShowOnlyCurrentWordInCompletionListItem="true">
</ajax:AutoCompleteExtender>

关于如何正确填充此控件集合的任何建议都非常感谢。

谢谢。

4

1 回答 1

1

好吧,我自己找到了解决方案。您可以在单击下拉菜单时绑定一个事件,并让 Web 服务返回一个 ID 字段作为事件参数的一部分。然后使用它来调用另一个返回具有值的复杂类型的 Web 服务。最后,使用 javascript 将这些值分配给所有控件。

易榨柠檬汁!

于 2009-04-08T05:01:53.133 回答