为了账号安全,请及时绑定邮箱和手机立即绑定

ASP.NET Web 窗体从 JavaScript 对页面的访问控制

ASP.NET Web 窗体从 JavaScript 对页面的访问控制

慕容森 2021-12-12 11:01:44
我必须修改一个旧的 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贡献1807条经验 获得超9个赞

编辑:

您不能将tablehtml 标记呈现为 ASP.NET 控件,因为它不是一个。

您应该考虑使用asp:Table代替:

<asp:Table runat="server" ID="employeeChangeHistory">

并使用调用您的 javascript

$("#<%= employeeChangeHistory.ClientID %>").DataTable();


查看完整回答
反对 回复 2021-12-12
?
九州编程

TA贡献1785条经验 获得超4个赞

试着把defer脚本。w3schools.com/tags/att_script_defer.asp。

另外/或确保您的脚本位于页面末尾。在您的问题中,它在 html 之前。在继续之前,浏览器会完全读取脚本,所以如果是第一次,脚本会查找它需要的 html 标签,但不会找到它们,因为它们还没有出现在页面上。将脚本放在最后有助于(但不保证)脚本可以找到它要查找的任何 html。(Defer有助于保证页面在脚本之前完全加载。)


查看完整回答
反对 回复 2021-12-12
  • 2 回答
  • 0 关注
  • 158 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信