繁体   English   中英

从C#代码背后触发jQuery函数

[英]Trigger jquery function from c# codebehind

我对asp.net/c#比较陌生,对jQuery非常陌生,所以如果这是一个newb问题,请原谅我。

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

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

当我单击显示为ctl00_wpn_ShowProduct_ctl04_TestAddToCartasp:HyperLink ,一切正常(我意识到,如果我在页面上移动内容,可能会ctl00_wpn_ShowProduct_ctl04_TestAddToCart但是我需要使其工作才能使其正常运行)。

我在该页面上还有一个asp:Button,我想对其进行一些处理,然后在弹出框中打开目标URL(日历)。 在原始文件中,单击链接即可启动fancybox并打开日历URL。 现在,如果我删除了它,那么在它执行六个其他任务之后,如何从按钮中获得相同的结果呢? 我没有可以绑定jQuery激活的链接。

我知道后台代码是服务器,而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/zh-CN/library/system.web.ui.scriptmanager.registerstartupscript.aspx

http://msdn.microsoft.com/zh-CN/library/z9h4dk8y.aspx

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

OnClientClick="pageLoad(sender, args)"

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM