我刚刚在网上四处搜索从后面的代码调用JavaScript函数,从我在Click事件中看到RegisterStartupScript方法的示例。但是为什么你想要或者需要这样做而不是仅仅将它连接到OnClientClick事件上? 是否需要从代码后面调用JavaScript函数?
答案 0 :(得分:1)
RegisterStartupScript是无数场景的众多选项之一。最后,您可以使用RegisterStartupScript执行的任何操作都可以通过其他方式完成。我曾经认为这是一种方便,现在我避免它,分离关注点和更高阶段的启示"。
主要是我看到仍在使用的RegisterStartupScript是自定义控件,它们可以自行连接,而最终用户不需要了解它们。请参阅AjaxControlToolKit,UpdatePanel,ScriptManager等。它们都需要javascript,但出于显而易见的原因,不要指望您包含客户端脚本或注册它们。
随机场景:
if (User.Identity.Name == "Frank")
RegisterStartupScript(this, GetType(), "Frank", "alert("Hey Frank, you owe me money!");
替代方案,让服务器端设置隐藏字段。
<input type="hidden" id="name" value="<%= User.Identity.Name %>" />
<script type="text/javascript">
$(document).ready(function() {
if ($("#name").val() == "Frank")
alert("Hey Frank, you owe me money!");
});
</script>