Javascript 从代码隐藏调用js函数不起作用?

Javascript 从代码隐藏调用js函数不起作用?,javascript,asp.net,Javascript,Asp.net,我有一个函数,我想在我的aspx页面中调用js函数。我正在使用ClientScript路由。然而,我查了好几个论坛,它似乎不起作用。我希望这是一个简单的东西。我试过有没有“页面” 我的后台代码: protected void btOpen_Click(object sender, EventArgs e) { Session["demog"] = 144; Page page = HttpContext.Current.CurrentHandler

我有一个函数,我想在我的aspx页面中调用js函数。我正在使用ClientScript路由。然而,我查了好几个论坛,它似乎不起作用。我希望这是一个简单的东西。我试过有没有“页面”

我的后台代码:

   protected void btOpen_Click(object sender, EventArgs e)
    {
        Session["demog"] = 144;
        Page page = HttpContext.Current.CurrentHandler as Page;
        page.ClientScript.RegisterStartupScript(this.GetType(), "closeWindow", "closeWin();", true);
    }
js函数:

    <script type="text/javascript">

        function closeWin() {
            alert("closing!");
              GetRadWindow().close();
          }
        function GetRadWindow() {
            var oWindow = null;
            if (window.radWindow)
                oWindow = window.radWindow;
            else if (window.frameElement.radWindow)
                oWindow = window.frameElement.radWindow;
            return oWindow;
        }
      </script>


            <telerik:RadButton ID="btnOpen" runat="server" Text="Open" OnClick="btOpen_Click">
                               <Icon PrimaryIconCssClass="rbOpen" PrimaryIconLeft="4" PrimaryIconTop="4"></Icon>
                          </telerik:RadButton>
               </telerik:RadAjaxPanel>

函数closeWin(){
警报(“关闭!”);
GetRadWindow().close();
}
函数GetRadWindow(){
var oWindow=null;
if(window.radWindow)
oWindow=window.radWindow;
else if(window.frameElement.radWindow)
oWindow=window.frameElement.radWindow;
返回oWindow;
}

我有一个取消按钮,它将closeWin()作为onClientClick调用,并且工作正常。这可能是因为我使用的是onClick,而不是onClientClick或其他什么吗?

尝试使用ScriptManager

ScriptManager.RegisterStartupScript(Page, typeof (Page), UniqueID, 
  "closeWin();", true);

您的OnClick将调用btOpen\u Click服务器端代码。这不是你想要的吗?是的,然后我想在btOpen的末尾调用js函数_Click@WillTuttle-研究jQuery和调用服务器端来完成任务的方法,而不是试图让ASP.NET页面生命周期与JavaScript配合良好。我建议使用ASP.NET页面方法将数据保存到服务器端会话缓存,然后jQuery AJAX调用的成功回调可以调用您的
closeWin()
函数。如果您越是远离ASP.NET后期处理周期,那么在尝试获取客户端功能时就会省去很多麻烦。看看这个问题:这与您的问题类似。