在ASP.NET中注册RegisterClientScriptBlock的位置?

时间:2010-05-11 22:26:31

标签: asp.net javascript

注册RegisterClientScriptBlock后,asp.net页面或代码的最佳部分在哪里。

2 个答案:

答案 0 :(得分:3)

你有很多选择。

注册脚本包含在<head>部分或内联<script>标记中。我更喜欢将我的脚本放在页面底部。

您也可以在Page(或任何其他活动)中Page_Load级别注册,方法是调用ClientScript.RegisterClientScriptBlock并将其传递给您想要的脚本。请记住,如果您使用RegisterClientScriptBlock,则需要确保在每次加载页面时注册代码,这就是为什么我要推荐Page_Load事件,如果您想使用此方法。

例如:

protected void Page_Load(object sender, EventArgs e)
{
    AddClientSideJavascript();
    // Do other stuff
}


private void AddClientSideJavascript()
{
    // Register some client script code
    Type someType = this.GetType();
    if (!ClientScript.IsClientScriptBlockRegistered(someType, "TESTSCRIPT"))
    {
        string script = "function ShowAlert() { alert('Test'); }";
        ClientScript.RegisterClientScriptBlock(someType, "TESTSCRIPT", script, true);
    }

    // Register more here... etc...
}

请确保您没有将Page_Load包含在if (!IsPostBack)支票中的部分包括在内,否则您的脚本将不会在任何回发后注册。

答案 1 :(得分:0)

正确的答案是 - 在page_load中的任何一点。