簡體   English   中英

在 asp.net 3.5 中使用 RegisterClientScriptBlock/RegisterStartupScript

[英]Use of RegisterClientScriptBlock/RegisterStartupScript in asp.net 3.5

我無法理解它的用途是什么。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用於在頁面頂部添加一個腳本塊,類似地,它為您提供了一種在您的代碼背后處理客戶端代碼和服務器代碼的方法。

隨着時間的推移,您可能會遇到需要根據背后代碼中的某些變體調用 JavaScript 中的函數的情況。

一個非常常見的例子是處理異常消息,然后使用 JavaScript 以一種奇特的方式顯示它們。

您可能想要捕獲這樣的異常:

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);
    }
}

這樣你的 JavaScript 就可以接管並以一種奇特的方式顯示消息 :D

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM