如何在部分回发中使用ScriptManger注册脚本?

时间:2012-07-31 10:40:55

标签: c# asp.net asp.net-ajax telerik

我在RadGrid中有一个RadAjaxPanel,它有一个View按钮,在jQuery弹出窗口中显示一个用户控件,同样在RadAjaxPanel内,显示网格记录的详细信息删除按钮。单击删除按钮会导致部分回发,导致记录被删除,并且网格将被反弹,从中删除已删除的记录。

我需要做的是运行一些客户端脚本来关闭弹出窗口。我试过了:

private void RiskEditor_DeleteClick( object sender, EventArgs e )
{
    this.grdRiskAnalysis.Rebind();
    ScriptManager.RegisterStartupScript(this.RadAjaxPanelRiskEditor,
                                        this.RadAjaxPanelRiskEditor.GetType(),
                                        "closepopup",
                                        "delayClosePopup($j(this).closest('.ui-dialog'), 1000);",
                                        true);
}

在此示例中,RadAjaxPanelRiskEditor是用户控件所在的AjaxPanel,但我也尝试使用网格所在的面板注册脚本。两者都不起作用。

有人可以解释我出错的地方以及如何实现这个目标吗?

由于

斯图尔特

1 个答案:

答案 0 :(得分:0)

我会做几件事:

  • 我会使用ScriptManager.RegisterClientScriptBlock,因为根据msdn:“注册每个异步回发的启动脚本块”,自RegisterStartupScript。

如果这不起作用,那么ms中有一些客户端j:http://msdn.microsoft.com/en-us/library/bb397536你可以使用:http://msdn.microsoft.com/en-us/library/bb383810.aspx - Sys.WebForms.PageRequestManager endRequest ,它将执行一个特定的js代码,所以也许你可以用一些条件逻辑把你的关闭对话框代码放在那里。