在asp.net 3.5中使用RegisterClientScriptBlock/RegisterStartupScript

Kum*_*mee 7 javascript c# asp.net

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

当我们可以直接写入javascrpt代码in.js文件然后在按钮上调用它

例如: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()");
Run Code Online (Sandbox Code Playgroud)

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

阅读一些文章,但他们不清楚

对此的任何想法都会很棒

谢谢王子

Waq*_*qas 4

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

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