Nano Hash - криптовалюты, майнинг, программирование

Общий обработчик не срабатывает

У меня есть общий обработчик, поэтому я могу использовать автозаполнение jquery.ui, но обработчик не срабатывает.

Вот мой код: ASPX

<%--------- -------- Autocomplete ----------- --%>
<link type="text/css" href="../css/ui-lightness/jquery.ui.all.css" rel="stylesheet" />
<script type="text/javascript" src="../js/jquery.ui.widget.js"></script>
<script type="text/javascript" src="../js/jquery.ui.position.js"></script>
<script type="text/javascript" src="../js/jquery.ui.autocomplete.js"></script>
<link href="../css/demos.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">

    function jqueryUI_autocomplete_update_backgroundColor(textbox) {
        var loginId = $(textbox).next().val();

        if (!textbox.disabled && loginId == "")
            textbox.style.backgroundColor = "#ff9999";
        else
            textbox.style.backgroundColor = "";
    }

    $(function () {
        $("#user").autocomplete({
            source: "Handler1.ashx",
            minLength: 1,
            select: function (event, ui) {
                $(this).next().val(ui.item.id);
                $("input[id=UserId]")[0].value = ui.item.id;
                $("input[id=DisplayName]")[0].value = ui.item.value;
                jqueryUI_autocomplete_update_backgroundColor(this);
            },

            search: function (event, ui) {
                $(this).next().val('');
                $("input[id=UserId]")[0].value = '';
                $("input[id=DisplayName]")[0].value = '';
                jqueryUI_autocomplete_update_backgroundColor(this);
            }
        })

            $("#user").data("autocomplete")._renderItem = function (ul, item) 
            {
                item.label = item.label.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(this.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
                return $("<li></li>")
                .data("item.autocomplete", item)
                .append("<a>" + item.label + "</a>")
                .appendTo(ul);
            };

    });
</script>

Handler1.ashx

/// <summary>
/// Summary description for Handler1
/// </summary>
/// 
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

public class Handler1 : IHttpHandler
{

    public void ProcessRequest(HttpContext context)
    {
        IList<Project_Data.User> usersList = Project_BLL.Users.ListUsers();
        var data = new List<Project_BLL.Users>();

        foreach (Project_Data.User user in usersList)
        {
            data = new List<Project_BLL.Users>{
                new Project_BLL.Users {UserId = user.Id.ToString(), DisplayName = user.Name}
            };
        }

        int limit = 10;
        if (HttpContext.Current.Request.QueryString["limit"] != null)
            limit = Convert.ToInt32(HttpContext.Current.Request.QueryString["limit"]);

        string q = "";
        if (HttpContext.Current.Request.QueryString["term"] != null)
            q = HttpContext.Current.Request.QueryString["term"];

        List<Project_BLL.Users> result = null;
        var sb = new StringBuilder();
        if (q.Trim() != "")
        {
            var query = data.Where(p => p.DisplayName.ToLower().Contains(q.ToLower()))
                .OrderBy(p => p.DisplayName);
            result = query.Take(limit).ToList();

            foreach (var item in result)
                sb.AppendFormat("{0}{1}|{2}", (sb.Length > 0 ? "\n" : ""), item.DisplayName, item.UserId);
        }

        context.Response.ContentType = "text/plan";
        context.Response.Write(JsonConvert.SerializeObject(result.Select(u => new { id = u.UserId, value = u.DisplayName }).ToList()));

    }

Веб-конфиг

<configuration>
  <system.web>
    <compilation debug="true" targetFramework="4.0"/>
    <pages controlRenderingCompatibilityVersion="3.5" clientIDMode="AutoID"/>

    <authentication mode="Forms">
      <forms name="TestAuthCookie" loginUrl="login.aspx" timeout="1500">
      </forms>
    </authentication>

    <authorization>
      <deny users="?"/>
    </authorization>
  </system.web>

  <location path="images">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

  <location path="App_Themes">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

  <location path="js">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

  <location path="css">
    <system.web>
      <authorization>
        <allow users="*" />
      </authorization>
    </system.web>
  </location>

</configuration>
26.04.2012

  • Можете ли вы показать свой Web.Config? 26.04.2012

Ответы:


1

Попробуйте изменить источник:

 $(function () {
        $("#user").autocomplete({
            source: function(request, response) {
                $.ajax({
                    url: "handler1.ashx",
                    data: {
                        foo: request.term
                    },
                });
            },


            minLength: 1,
            select: function (event, ui) {
                $(this).next().val(ui.item.id);
                $("input[id=UserId]")[0].value = ui.item.id;
                $("input[id=DisplayName]")[0].value = ui.item.value;
                jqueryUI_autocomplete_update_backgroundColor(this);
            },

здесь вы можете найти рабочий пример (исходный код)

С сайта JQuery:

Автозаполнение можно настроить для работы с различными источниками данных, просто указав параметр источника. Источником данных может быть:

  • массив с локальными данными
  • Строка, указывающая URL
  • Обратный звонок

Вы должны указать обратный вызов, который делает публикацию / получение вашего ashx.

Здесь полный справочник по $.ajax

обратный звонок

26.04.2012
  • Я не знаю, что делать, никогда не вызывается, не знаю почему, у меня есть точка останова, чтобы проверить, вызывается ли он, и никогда не входит 02.05.2012
  • ты читал ответ? я внес некоторые изменения, вместо использования Source: handler1.ashx вы должны использовать функцию $.ajax. 02.05.2012

  • 2

    Где ваш раздел httpHandlers в этом файле web.config? Если вы хотите, чтобы ваш обработчик работал, вы должны определить его в файле web.config.

    26.04.2012
  • Или сделайте конечной точкой обработчика ASHX; существует ли на самом деле контейнер ASHX (не совсем «страница»), для которого Handler1 является кодом программной части. 26.04.2012
  • просто установите это в webconfig, но выдает ошибку: ‹httpHandlers› ‹add verb=path=.aspx type=Handler1 /› ‹/httpHandlers› Ошибка: не удалось загрузить тип «Handler1». 26.04.2012
  • перейдите туда, чтобы узнать, как зарегистрировать httpHandler с файлом ashx justinrhinesmith.com/blog/2008/05/11/ 26.04.2012
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..