我必须修改一个旧的 ASP.NET Web 窗体项目。我有一个带有表格的页面,我需要从后面的代码加载数据。当页面加载时,我想为来自 JavaScript 的数据表初始化它。问题是当 JavaScript 运行时,表还没有加载到页面中,因为它是 runat = server. 我试过将脚本块放在一个带有 runat=server 的 div 中,认为它们可能同时出现。没有运气。我知道该脚本有效,因为如果我从表中删除 runat=server,它们会同时加载,并且它会被初始化为数据表。我也试过 RegisterStartupScript 和 RegisterScriptBlock,它们都不起作用。如果我不能让它工作,我可以用其他方式加载数据。我需要该表作为 runat 服务器的唯一原因是从后面的代码加载数据 <script type="text/javascript"> st(); function st() { console.log('load datatable'); $('[name = "employeeChangeHistory"]').DataTable(); } </script> <table runat="server" name="employeeChangeHistory" ..... </table>
2 回答
九州编程
TA贡献1785条经验 获得超4个赞
试着把defer
脚本。w3schools.com/tags/att_script_defer.asp。
另外/或确保您的脚本位于页面末尾。在您的问题中,它在 html 之前。在继续之前,浏览器会完全读取脚本,所以如果是第一次,脚本会查找它需要的 html 标签,但不会找到它们,因为它们还没有出现在页面上。将脚本放在最后有助于(但不保证)脚本可以找到它要查找的任何 html。(Defer
有助于保证页面在脚本之前完全加载。)
添加回答
举报
0/150
提交
取消