开发者

Use of RegisterClientScriptBlock/RegisterStartupScript in asp.net 3.5

I'm not able to understand what is the use of it.RegisterClientScriptBlock/RegisterStartupScript.

When we can directly write the JavaScript code in.js file then call it on the button

ex: 2

<script>开发者_如何学C;
    function ReqField1Validator() { 
        if (document.forms[0].txtField1.value == '') {
            alert('TextBox cannot be empty') 
            return false
         } 
         return true 
     } 
</script>

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

What will be the use of 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());
    }
}

Read few articles but they were not clear.

Any thoughts on this would be great.


RegisterStartupScript is used to register and execute javascript functions once the page finished loading, this javascript code executes before the onLoad event of page is raised. You can use it for multiple reasons, for example, you want to execute any particular javascript function depending on some variable value in your code behind.

On the other hand, RegisterClientScriptBlock is used to add a script block on the top of your page, similarly it provides you a way to work with both client side code and server code in your code behind.


In time, you might come across situations in which you will need to call a function in JavaScript depending on some variants in your code behind.

A very common example would be to handle exception messages and then display them in a fancy way using JavaScript.

You might want to catch an exception like this:

public void TrySomethingAwesome(){
    try
    {
        //try to do something awesome
    }
    catch (Exception ex)
    {   
        ScriptManager.RegisterStartupScript(Page, typeof(Page), "showError",
            string.Format("ShowError({0});", "Oops! Something went wrong :("), true);
    }
}

And that way your JavaScript can take over and display the message in a fancy way :D

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜