【问题标题】:Call jQuery function from ASP.NET code behind C#从 C# 后面的 ASP.NET 代码调用 jQuery 函数
【发布时间】:2010-03-07 17:33:46
【问题描述】:

我有以下jquery函数

> <script type="text/javascript">
> 
>     $(document).ready(function() {
> 
>         $('#callGrowel').click(function() {
>             $.growlUI('Email Received', 'from Joe Bloggs');
>         });
>     });
> 
> </script>

在我的 aspx 页面中,我有一个 div

<div id="callGrowel" >Run Growe l</div>

但我需要一种在 C# 中从我的代码隐藏文件中调用 growlUI jquery 函数的方法,而不是单击 UI 中的 div。

这可能吗??

【问题讨论】:

    标签: c# asp.net jquery


    【解决方案1】:

    我使用了以下方式,对我来说 100% 正常工作:

    首先我创建一个函数并将我的 jquery 函数写入我的页面中的函数:

    <script>
    function myFunction(params) {
        $.my_jquery(params...)
        ......
    }
    

    然后我在我的控件位于更新面板内的控件的事件处理程序中使用了此代码(例如单击按钮):

    protected void myButton(object sender, EventArgs e)
    {
        .....
        ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "tmp", "<script type='text/javascript'>myFunction(params...);</script>", false);
    }
    

    成功

    【讨论】:

    • 这个解决方案对于 ASP.NET FORMS 项目来说是可以接受的,我也成功地使用了回发的 Page_Load 方法。 MVC 和 API inpage 实践将在 Views/Controllers 中动态执行此操作。
    【解决方案2】:

    这真的没有意义。您的 C# 代码在服务器上运行以生成一个 HTML 文件,该文件被传递给客户端并在那里进行翻译。 jQuery 只能对客户端的 HTML 进行操作。

    是你试图通过替换来实现的目标

         $('#callGrowel').click(function() {
             $.growlUI('Email Received', 'from Joe Bloggs');
         });
    

         $.growlUI('Email Received', 'from Joe Bloggs');
    

    ?

    【讨论】:

    • 不...我的 C# 代码正在检查电子邮件存储库的更新,当我检测到新电子邮件时,我想触发 $.growlUI jquery 函数。不过,如果我将它附加到 div 或按钮元素上,我可以间接调用。
    • 例如在这里你可以从代码隐藏文件devcurry.com/2009/01/…调用javascript
    • 该链接并没有真正显示如何从 C# 调用 javascript,这对作者而言是不好的术语。这样做是将 javascript 注入 HTML 文件。如果你问我,这是一种可疑的方法。更好的设计:加载基本的 HTML 文件,让 jQuery.ajax() 回调到服务器以查看您是否有任何新电子邮件,如果响应显示有,则触发您的 growlUI 方法。
    • 好的...感谢您抽出宝贵时间发帖,感谢您的帮助
    猜你喜欢
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多