从c#代码后面触发jquery函数

时间:2012-02-15 19:24:28

标签: c# jquery asp.net

我是asp.net / c#的新手,也是jQuery的新手,所以如果这是一个新问题,请原谅我。

我安装了一个jQuery fancybox,其定义如下:

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

当我点击呈现为asp:HyperLink的{​​{1}}时,一切正常(我意识到如果我在页面上移动东西,这可能会破坏,但我需要在它使其运行良好之前使其工作)。

我有另一个asp:该页面上的按钮,我想要进行一些处理,然后在fancybox中打开目标URL(日历)。在原来,点击链接使fancybox进入游戏并打开日历URL。现在,如果我删除它,如何在执行其他六个其他任务后从按钮获得相同的结果?我不会有一个链接,我可以绑定jQuery激活。

我知道代码隐藏是服务器而jQuery是客户端,但是如果它可以从链接起作用,它应该可以从按钮开始工作。

3 个答案:

答案 0 :(得分:2)

我建议在客户端使用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

答案 1 :(得分:1)

如果你想在回发上运行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

答案 2 :(得分:0)

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

OnClientClick="pageLoad(sender, args)"

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

相关问题