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

Как я могу запустить какой-нибудь javascript после обновления панели обновлений?

У меня есть функция pageLoad, которая устанавливает некоторый CSS для элемента управления .ascx, который я не могу изменить. При загрузке страницы все в порядке, но когда панель обновления обновляет элемент управления, мой CSS больше не применяется. Как я могу перезапустить свою функцию после обновления страницы?

 $(function() {
        $("textarea").attr("cols", "30");
        $("input.tbMarker").css({ "width": "100px" }).attr("cols","25");
    });

Это, очевидно, работает только при начальной загрузке страницы. Как я могу запустить его после обновления?



Ответы:


1

Также может работать добавление обработчика add_pageLoaded.

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(PageLoadedHandler);

Примечание: обработчик будет срабатывать для любого обратного вызова, но вы можете использовать sender._postBackSettings.panelID для фильтрации, когда вы хотите, чтобы вызывалась ваша функция.

Больше образцов:

27.07.2009
  • Отлично! Кроме того, если нет явной панели (например, может быть, вы используете какой-либо элемент управления Telerik, который за кулисами использует UpdatePanels), вы также можете использовать sender._postBackSettings.asyncTarget, чтобы проверить, является ли текущая обратная передача той, которую вы ищете. 06.06.2016

  • 2

    Самый простой способ - использовать MSAjax pageLoad Event в вашем коде javascript:

    <script> 
       ///<summary>
       ///  This will fire on initial page load, 
       ///  and all subsequent partial page updates made 
       ///  by any update panel on the page
       ///</summary>
       function pageLoad(){ alert('page loaded!') }  
    </script>
    

    Я использовал его много раз, он работает как шарм. Самое главное, не путайте его с функцией document.ready (которая будет выполняться только один раз после того, как объектная модель документа (DOM) страницы будет готова для выполнения кода JavaScript), однако событие pageLoad будет выполняться каждый раз, когда панель обновления освежает.

    Источник: Выполнение скрипта после обновления панели AJAX asp.net

    07.06.2013
  • классно ! Я давно искал способ сохранить выполнение javascript при обновлении панели обновлений, спасибо за ваш ответ! 26.08.2013
  • Только что проработал эту ситуацию на проекте - это было для меня самым простым и надежным. Подходы add_pageLoaded и RegisterStartupScript было труднее отслеживать и отлаживать с помощью обратных вызовов, но pageLoad Just Works(tm) 31.01.2015
  • вар первая загрузка = 0; function pageLoad() { if (firstload==0)firstload=1; else { alert('Постбэк!'); } 07.03.2017

  • 3

    Добавьте код в ту же форму, в которой вы разместили диспетчер сценариев.

    Код позади:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (ScriptManager1.IsInAsyncPostBack)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("<script language='javascript' type='text/javascript'>");
            sb.Append("Sys.Application.add_load(func);");
            sb.Append("function func() {");
            sb.Append("Sys.Application.remove_load(func);");
            sb.Append("alert('I am Batman!');");
            sb.Append("}");
            sb.Append("</script>");
            ScriptManager.RegisterStartupScript(this, GetType(), "script", sb.ToString(), false);
        }
    }
    
    16.05.2013

    4

    Во время постбэка для панели обновлений в коде сервера используйте ClientScriptManager, чтобы добавить на страницу какой-нибудь новый скрипт, примерно так:

    ClientScriptManager.RegisterStartupScript(
           typeof(page1), 
           "CssFix", 
           "javascriptFunctionName()", 
            true);
    

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

    27.07.2009

    5

    Вы также можете привязываться к событию в коде на стороне клиента (JavaScript) каждый раз, когда UpdatePanel завершает работу следующим образом:

            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(function(){myFunction();});
    

    Итак, в этом случае myFunction(); будет вызываться каждый раз, когда происходит обратная передача UpdatePanel. Если вы выполните этот код при загрузке страницы, функция будет вызвана в нужное время.

    27.07.2009
    Новые материалы

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

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

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

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

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

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

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