首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测AutoCompleteExtender选择事件

检测AutoCompleteExtender选择事件
EN

Stack Overflow用户
提问于 2012-10-11 19:33:02
回答 1查看 6.5K关注 0票数 5

既然控件没有这个事件,那么捕获AutoCompleteExtender select事件的最佳方法是什么?

这是我正在谈论的示例。我有两个带有链接的AutoCompleteExtender控件的文本框(Location1TextBox,Location2TextBox)。这部分运行得很好。现在的问题是,当用户从任何AutoCompleteExtender中进行选择时,我需要捕捉这个事件,并尝试计算location1和location2之间的距离。结果应该自动填充到DistanceTextBox中。有什么好的建议吗?我只希望它不会以文本框的onchange事件结束...

代码语言:javascript
复制
    <asp:UpdatePanel ID="UpdatePanel2" runat="server">
        <ContentTemplate>
            <asp:Label ID="TitleLabel" runat="server" Text='<% $resources:AppResource,LocationStart %>'
                CssClass="OneColumnLabel"></asp:Label>:<br />
            <asp:TextBox ID="Location1TextBox" runat="server" CssClass="TwoColumnMiddleLongText"
                ValidationGroup="Edit" AutoPostBack="true"></asp:TextBox>*
            <asp:RequiredFieldValidator ID="TitleRequiredFieldValidator" runat="server" ControlToValidate="Location1TextBox"
                Display="None" ErrorMessage='<% $resources:AppResource,LocationRequired %>' ValidationGroup="Edit"></asp:RequiredFieldValidator>
            <ajaxToolkit:AutoCompleteExtender runat="server" ID="AutoCompleteExtender1" TargetControlID="Location1TextBox"
                ServiceMethod="GetCompletionList" ServicePath="TravelOrder.aspx" MinimumPrefixLength="1"
                CompletionInterval="300" UseContextKey="True">
            </ajaxToolkit:AutoCompleteExtender>
            <asp:Label ID="Label7" runat="server" Text='<% $resources:AppResource,LocationArrival %>'
                CssClass="OneColumnLabel"></asp:Label>:<br />
            <asp:TextBox ID="Location2TextBox" runat="server" CssClass="TwoColumnMiddleLongText"
                ValidationGroup="Edit"></asp:TextBox>*
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="Location2TextBox"
                Display="None" ErrorMessage='<% $resources:AppResource,LocationRequired %>' ValidationGroup="Edit"></asp:RequiredFieldValidator>
            <ajaxToolkit:AutoCompleteExtender runat="server" ID="AutoCompleteExtender2" TargetControlID="Location2TextBox"
                ServiceMethod="GetCompletionList" ServicePath="TravelOrder.aspx" MinimumPrefixLength="1"
                CompletionInterval="300" UseContextKey="True">
            </ajaxToolkit:AutoCompleteExtender>
            <asp:Label ID="Label8" runat="server" Text='<% $resources:AppResource,Distance %>'
                CssClass="OneColumnLabel"></asp:Label>:<br />
            <asp:TextBox ID="DistanceTextBox" runat="server" CssClass="OneColumnText" ValidationGroup="Edit"></asp:TextBox>*
            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="DistanceTextBox"
                Display="None" ErrorMessage='<% $resources:AppResource,DistanceRequired %>' ValidationGroup="Edit"></asp:RequiredFieldValidator>
        </ContentTemplate>
    </asp:UpdatePanel>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-12 16:40:29

您可以从目标文本框中删除AutoPostBack="true",订阅TextChanged事件,并使用下面的函数作为itemSelected扩展器的客户端事件OnClientItemSelected="autoCompleteEx_ItemSelected"的处理程序

代码语言:javascript
复制
<script type="text/javascript">
     function autoCompleteEx_ItemSelected(sender, args) {
          __doPostBack(sender.get_element().name, "");
     }
</script>
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12838552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档