jquery - 当 asp.net 用户控件加载时,javascript 不会触发

标签 jquery asp.net onload

当 ASP.net 用户控件访问 aspx 页面时,我尝试触发 Javascript 调用。
该网站允许用户向页面添加用户控件(类似于向页面添加小部件等,如 google widgets)。但是,当添加控件时,javascript 不会触发,只有刷新页面时才会触发 javascript。如果下次访问该网站并且控件仍然存在,JavaScript 也会触发。

我是否需要使用 RegisterClientScript 方法来注册控件加载或 OnPreRender 事件上的调用 (setAutoTimer())。

在用户控件中,我在 ascx 文件的开头有以下内容:

<script language="javascript" type="text/javascript">
    $(document).ready(function () {
        if ($("#alarmList").length) {
            setAutoTimer();
            getData();
       }
    });

    function setAutoTimer() {
        setInterval(getData, 10000);
    }

    function getData() {
        $.ajax({
            type: "POST",
            url: "Service.asmx/getListData
            data: "{'inverterid': '" + "1'}",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function (msg) {
                AjaxSucceeded(msg);
            },
            error: AjaxFailed
        });
    }

    function AjaxSucceeded(result) {
        $("#alarmList").empty();

        $("#alarmsListTemplate").tmpl(result.d)
        .appendTo("#alarmList");
    }

    function AjaxFailed(result) {
        alert(result.status + ' ' + result.statusText);
    }
</script>

最佳答案

$(文档).ready(function () {});仅在发生完整回发后运行(当重新加载 DOM 时)。我假设您通过另一个 AJAX 方法添加控件(在这种情况下 document.ready 将不会触发。您可以使用 AJAX 框架事件 pageLoad(sender, args) ,它将在回调和回发后触发。您可以像这样使用它所以..

function pageLoad(sender, args) {
        if (args.get_isPartialLoad()) {
            setAutoTimer();
            getData();
        }
    }

关于jquery - 当 asp.net 用户控件加载时,javascript 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5327842/

相关文章:

c# - 在 ASP.NET 上创建 JSON header

JavaScript ES6 到基础 JavaScript

javascript - 如何更改 amcharts 饼图主题?

javascript - 我的 javascript 无法在 asp.net 中使用我的页面

c# - 在 ASP.NET MVC 操作中获取复选框值

javascript - 调整大小功能仅适用于一维

javascript - 如何将带有工具提示的html外部链接更改为rails中的link_to

asp.net - 在客户端访问服务器端变量,反之亦然 Asp.Net 和 javascript

javascript - 随机播放来自多个框的 div

JavaScript 的两个 onload 函数