Вызов обратной передачи веб-формы asp.net из select2: выберите событие - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь вызвать обработчик обратной передачи, когда пользователь выбирает опцию из выпадающего списка select2.Когда я пытаюсь использовать код, показанный ниже, я получаю сообщение об ошибке:

"Недопустимый аргумент обратной передачи или обратного вызова. Проверка события включена с использованием в конфигурации или <% @ Page EnableEventValidation =" true "%> на страницеВ целях безопасности эта функция проверяет, что аргументы для событий обратной передачи или обратного вызова исходят от серверного элемента управления, который первоначально их представил. Если данные действительны и ожидаемы, используйте метод ClientScriptManager.RegisterForEventValidation, чтобы зарегистрировать данные обратной передачи или обратного вызова для проверки.. "

Я ищу совет относительно метода использования события select2 для запуска обратной передачи и, следовательно, для загрузки новых данных на основе выбора пользователя

Управление ASCX

<%@ Control Language="VB" AutoEventWireup="false" Inherits="uc_selector" EnableViewState="true" Codebehind="selector.ascx.vb" %>
<asp:TextBox ID="txtName" Visible="False" Runat="server" AutoPostBack="False" />
<asp:HiddenField ID="txtID" runat="server"  />
<asp:ListBox ID="nameSelect" Runat="server" AutoPostBack="False" />

<script type="text/javascript">
    $(document).ready(function() {   
        $("#<%=nameSelect.ClientID%>").select2({
            minimumInputLength: 2,
            width: 'resolve',
            ajax: {
                url: "<%=ResolveClientUrl("~/")%>MyEndpoint.ashx",
                dataType: 'json',
                data: function (params) {
                    return {
                        q: params.term
                    };
                },
                processResults: function (data) {
                    return {
                        results: $.map(data,
                            function(x) {
                                return {
                                    id: x.Id,
                                    text: x.Name
                                };
                            })
                    };
                }
            }
        });

        $("#<%=nameSelect.ClientID%>").on('select2:select', function (e) {
            $("#<%=txtID.ClientID%>").val(e.params.data.id);
            $("#<%=txtName.ClientID%>").val(e.params.data.text);
            __doPostBack('<%=nameSelect.UniqueID%>', '');
        });
    });
</script>

Код сзади

Protected Sub name_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles nameSelect.TextChanged
    RaiseEvent TextChanged(sender, e)
End Sub
...