C# Can';无法在ASP.NET用户控件上执行javascript
我正在尝试做最简单的事情,通过javascript从用户控件(ascx.cs)的代码中显示一个警报弹出窗口 我试过了C# Can';无法在ASP.NET用户控件上执行javascript,c#,asp.net,telerik,scriptmanager,clientscript,C#,Asp.net,Telerik,Scriptmanager,Clientscript,我正在尝试做最简单的事情,通过javascript从用户控件(ascx.cs)的代码中显示一个警报弹出窗口 我试过了 protected void btnSave_Click(object sender, EventArgs e) { ScriptManager.RegisterStartupScript(btnSave, GetType(), "uniqueID", "alert('hello');", true); } 以及 Page.ClientScript.RegisterSt
protected void btnSave_Click(object sender, EventArgs e)
{
ScriptManager.RegisterStartupScript(btnSave, GetType(), "uniqueID", "alert('hello');", true);
}
以及
Page.ClientScript.RegisterStartupScript(GetType(), "uniqueID", "alert('hello');", true);
但对我来说似乎什么都不管用。该控件位于ASPX页面中的RadAjaxPanel(telerik)内
我错过了一些明显的东西。有什么想法吗
编辑:据我所知,javascript没有被注入html源代码中。我在html中查找ID和实际的警报语句。是否有将页面的类型传递给客户端脚本类型参数:
Page.ClientScript.RegisterClientScriptBlock(typeof(MyPage),
"myPostBackScript", script, true);
编辑:通常这段代码是有效的,但我不知道telerik的控件如何影响注入的脚本。我认为您应该打开页面的HTML源代码并尝试查找注入的脚本。这将帮助我们解决您的问题。如果从按钮的onclineclick事件调用,您会调用吗?无论您使用什么控件,请确保您是从客户端事件调用js
另外,请看一下您的想法
编辑
不能从服务器调用js,js是客户端脚本。您可以做的是在完成所有检查后注册脚本,并将其绑定到onload事件。详情请参见此
编辑2
看看啊,问题出在Telerik雷达面板上。我只需将EnableOutside脚本设置为true,如下所示:
<telerik:RadAjaxPanel ID="ajaxpanel" runat="server" LoadingPanelID="ajaxLoadingPanel" EnableOutsideScripts="true">
它是从服务器端按钮单击事件调用的,因为在抛出警报框之前,我必须进行一些服务器端检查。
ScriptManager.RegisterStartupScript(btnSave, GetType(), "uniqueID", "alert('hello');", true);