从c#codebehind触发jquery函数

本文关键字:函数 jquery 触发 c#codebehind | 更新日期: 2023-09-27 18:24:57

我对asp.net/c#相当陌生,对jQuery也很陌生,所以如果这是一个新问题,请原谅我。

我安装了一个jQuery fancybox,它由定义

 function pageLoad(sender, args) {  
 $("#ctl00_wpm_ShowProduct_ctl04_TestAddToCart").fancybox({  
    'width' : 600,   
    'height' : 620,  
    'type' : 'iframe'   });      
}

当我点击呈现为ctl00_wpn_ShowProduct_ctl04_TestAddToCartasp:HyperLink时,一切都正常(我意识到如果我在页面上移动东西,这可能会中断,但我需要先让它正常工作,然后才能让它正常运行)。

我在那个页面上有另一个asp:Button,我想做一些处理,然后在一个fancybox中打开目标URL(日历)。在原版中,点击链接将fancybox带入游戏,并打开日历URL。现在,如果我删除了它,在按钮完成六项其他任务后,我如何从按钮中获得相同的结果?我没有一个链接可以将jQuery激活绑定到该链接。

我知道codeehind是服务器,jQuery是客户端,但如果它可以通过链接工作,那么它应该通过按钮工作。

从c#codebehind触发jquery函数

我建议在客户端使用ClientID

如果你能完全通过前端完成,你可以做这样的事情。

<asp:Button OnClientClick="LaunchTheFancyBox()" ID=""... />
<script>
    function LaunchTheFancyBox(){ 
        $('#<%=myControl.ClientID%>').fancybox({  
            'width' : 600,   
            'height' : 620,  
            'type' : 'iframe'   
        });    
    }
</script>

注意:如果需要从服务器发送,则需要通过控件注入。

这是一篇有同样问题的帖子
http://www.eggheadcafe.com/community/csharp/2/10346901/open-jquery-fancybox-from-codebehind.aspx

如果您想在回发和:上运行javascript

如果你正在使用AJAX,你可以这样做:

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "ScriptKey", "myFunction();", true);

否则你可以使用这个:

ClientScriptManager.RegisterClientScriptBlock(this.GetType(), "ButtonClickScript", "myFunction();", true);

参考文献:

http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerstartupscript.aspx

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

在按钮中,使用(您需要设置参数值):

OnClientClick="pageLoad(sender, args)"

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.button.onclientclick.aspx