我无法理解它的用途。RegisterClientScriptBlock/RegisterStartupScript。

当我们可以直接在.js文件中编写JavaScript代码然后在按钮上调用它时

例如:2

<script>
    function ReqField1Validator() {
        if (document.forms[0].txtField1.value == '') {
            alert('TextBox cannot be empty')
            return false
         }
         return true
     }
</script>

btnPostback.Attributes.Add("onclick","return ReqField1Validator()");

RegisterClientScriptBlock/RegisterStartupScript的用途是什么?
protected void btnPostback_Click(object sender, EventArgs e)  {
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    sb.Append(@"<script language='javascript'>");
    sb.Append(@"var lbl = document.getElementById('lblDisplayDate');");
    sb.Append(@"lbl.style.color='red';");
    sb.Append(@"</script>");

    if (!ClientScript.IsStartupScriptRegistered("JSScript")){
        ClientScript.RegisterStartupScript(this.GetType(), "JSScript", sb.ToString());
    }
}

阅读了几篇文章,但不清楚。

关于此的任何想法都将是很棒的。

最佳答案

RegisterStartupScript用于在页面加载完成后注册并执行javascript函数,该javascript代码在引发页面的onLoad事件之前执行。您可以出于多种原因使用它,例如,您要根据后面代码中的某些变量值来执行任何特定的javascript函数。

另一方面,RegisterClientScriptBlock用于在页面顶部添加脚本块,类似地,它为您提供了一种在后面的代码中同时使用客户端代码和服务器代码的方法。

10-04 16:28