仅在页面回发时插入javascript

时间:2011-02-18 15:59:46

标签: c# javascript asp.net

我确信这是相当简单但我无法让它工作。我想在我的页面添加一个javascript函数,但只有当页面回发时。

所以我有一个调用一些服务器端代码的按钮,当它完成并且页面重新加载时我希望调用javascript函数。

考虑到这一点,我想我可以添加一个隐藏变量并在单击按钮时设置它,但我想我只是在加载时将javascript插入到页面上。

这可能,甚至是一种好方法吗?

谢谢, 尼尔

编辑:好的,这是我在C#代码中的OnClick方法。

protected void Save(object sender, EventArgs e)
{
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "alert", "<script type=\"text/javascript\">alert('hello world');</script>"); 
    EnforcementMatch(false);
    EnforcementMatch(true);
    ApplicationNotMatch();
    ApplicationMatch();
    Response.Redirect(Request.Url.ToString());
}

另一个编辑:刚刚意识到底部的response.redirect重新加载我的页面,取消了我输入的代码,呃!

4 个答案:

答案 0 :(得分:4)

您可以使用ClientScriptManager.RegisterClientScriptBlock

http://msdn.microsoft.com/en-us/library/btf44dc9.aspx

如果您将其置于按钮点击事件中,则无需担心是否为回发。

答案 1 :(得分:2)

您了解IsPostBack功能,对吧?

IsPostBack (MSDN)

if (IsPostBack)
{
    ClientScript.RegisterClientScriptBlock()
}

答案 2 :(得分:0)

将其放在单独的脚本块中,仅在回发时呈现。

<script type="text/javascript" runat="server" visible="<%#this.IsPostBack %>">
    TheCode();
</script>

答案 3 :(得分:0)

此脚本将在updatepanel

的每一个回发中触发
<script type="text/javascript"> 
    var prm = Sys.WebForms.PageRequestManager.getInstance(); 
    prm.add_endRequest(function ()    {
        alert('hello world');
    });
</script>