Текстовое поле Ajax AutoCompleteExtender не запускает событие изменения текста в браузере Edge

Я использую Ajax AutoCompleteExtender в текстовом поле (ASP.NET) и подключил событие изменения текста. Когда я набираю текстовое поле, система может успешно получить данные из метода asmx, но событие изменения текста, связанное с текстовым полем автозаполнения, не запускается. Это происходит только в браузере Edge. Я протестировал сайт в Chrome и IE, и он работает абсолютно нормально. Чтобы добавить, эта проблема начала появляться, когда я обновился до последней версии Ajax Control Kit. Также событие изменения текста запускается (край), когда я нажимаю кнопку отправки. Это похоже на то, как событие изменения текста запускается, когда запускается какое-то другое событие.

Ниже приведен фрагмент кода.

<asp:TextBox ID="AutoTxtCompany" runat="server" aria-describedby="ContentPlaceHolder1_rfvCustomerCompany" AutoPostBack="true" CssClass="ui-autocomplete-input ui-widget ui-widget-content comboBoxDimensionsTextBox" OnTextChanged="AutoTxtCompany_TextChanged" aria-required="true" />  
<asp:AutoCompleteExtender ID="autoextAutoTxtCompany" BehaviorID="autoextcompanyautocomplete" runat="server" TargetControlID="AutoTxtCompany" MinimumPrefixLength="1" EnableCaching="false"
CompletionSetCount="5000" CompletionInterval="100" ServiceMethod="getCompanyList"                       CompletionListCssClass="autocomplete_completionListElement" ServicePath="~/FrontEnd/AutoComplete.asmx" UseContextKey="true" FirstRowSelected="true">
</asp:AutoCompleteExtender>

person Pritish Mohapatra    schedule 20.03.2019    source источник


Ответы (1)


Попробуйте использовать событие OnClientItemSelected элемента управления AutoCompleteExtender для запуска события Textbox TextChanged. Код такой:

<script type="text/javascript" >
    function DoTextChangedPostBack(source, eventArgs) {
        var hfield = $get('<%=AutoTxtCompany.ClientID%>');
        hfield.value = eventArgs.get_value();
        __doPostBack("<%=AutoTxtCompany.ID%>", "TextChanged");
    }
</script>
<div>           
    <asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <asp:TextBox ID="AutoTxtCompany" runat="server" aria-describedby="ContentPlaceHolder1_rfvCustomerCompany" 
        AutoPostBack="true" CssClass="ui-autocomplete-input ui-widget ui-widget-content comboBoxDimensionsTextBox" 
        OnTextChanged="AutoTxtCompany_TextChanged" aria-required="true" />  
    <ajaxtoolkit:autocompleteextender id="autoextAutoTxtCompany" behaviorid="autoextcompanyautocomplete" runat="server"
        targetcontrolid="AutoTxtCompany" minimumprefixlength="1" enablecaching="false"
        completionsetcount="5000" completioninterval="100" servicemethod="getCompanyList" 
        completionlistcssclass="autocomplete_completionListElement" servicepath="FrontEnd/AutoComplete.asmx" 
            OnClientItemSelected="DoTextChangedPostBack" 
        usecontextkey="true" firstrowselected="true">
    </ajaxtoolkit:autocompleteextender>
</div>
person Zhi Lv    schedule 21.03.2019
comment
Большое спасибо за помощь. Он работал правильно. Но разве это не должно делаться автоматически? Я выразил обеспокоенность по этому поводу команде devExpress. Посмотрим, что они скажут. - person Pritish Mohapatra; 21.03.2019