【问题标题】:Calling JQuery Function from Server (asp.net)从服务器调用 JQuery 函数 (asp.net)
【发布时间】:2016-01-21 07:07:04
【问题描述】:

在我使用 C# 的 asp.net 项目中,我需要从后面的代码中调用 JQuery 函数。 以下是包含所需脚本的函数:

<link rel="stylesheet" href="/fancybox/jquery.fancybox-1.3.4.css" type="text/css" media="screen" />

   function showFancy(url, title, width, height) {
        //alert(url);
        $(".fancyBox").fancybox({
            'width': width,
            'height': height,
            'autoScale': true,
            'transitionIn': 'elastic',
            'transitionOut': 'none',
            'type': 'iframe',
            'overlayColor': '#000000',
            'overlayOpacity': 0.7,
            'position': 'fixed',
            'scrolling': 'yes',
            'modal': false,
            'target': "_parent",

            "onClosed": function () {
                window.location = window.location;
            }

        });
        $('.fancyBox').attr({ href: url, title: title });
        $('.fancyBox').click();

    }

以及我从 aspx.cs 调用的方式:

           protected void Button1_Click(object sender, EventArgs e)
        {
ClientScript.RegisterClientScriptBlock(this.GetType(), "Script", "showFancy('NewForm.aspx?ordernumber2=' + $('#TxtContractNumber').val(), 'Send', '55%', '65%');", true);
            }

当我使用输入按钮从客户端调用函数时它工作正常,但是当我从服务器端调用它时它不会调用 newform.aspx(当我从 showFancy 函数取消注释“alert(url);”时,警报作品)。我相信我称之为“新形式”的方式存在一个问题。提前感谢您的时间和回答。

【问题讨论】:

    标签: javascript c# jquery asp.net ajax


    【解决方案1】:

    如果您想在单击按钮 Button1 时执行此 javascript,您需要在后面的代码中将其添加为 onclick 属性。您可以在Page_Load 或OnPreRender 上添加此属性。

    Button1.Attributes.Add("onclick", "showFancy(...); return true;")
    

    如果你需要做一些服务器动作,最后返回true会在javascript之后调用按钮的服务器端(Button1_Click)。

    【讨论】:

    • 感谢“我的生日”。使用您的建议并将以下代码添加到 aspx.cs 文件的 page_load 中: Button1.Attributes.Add("onclick", "showFancy('NewForm.aspx?ordernumber2=' + $('#TxtContractNumber').val(), '发送', '55%', '65%'); 返回真;"); ,现在它以花式框格式打开 newform.aspx 页面(就像一个弹出窗口),但在几秒钟后消失,之后它就不起作用了。你觉得问题出在哪里?
    • 如果你想让fancybox保持打开状态,最后输入return false,而不是return true。 return false 不会执行按钮的服务器端调用,页面不会回发。
    • 不完全正确。很好,它打开了新页面,但它仍然消失了。 'Button1.Attributes.Add' 和 'ClientScript.RegisterClientScriptBlock' 都应该返回 false。对于 page_load,我检查 if(!IsPostBack) 然后调用 'Button1.Attributes.Add'。
    • 我回答你最初的问题,我不知道你的脚本哪里出了问题,使用console.log调试它。创建新问题并询问有什么问题有人可以帮助它。
    猜你喜欢
    • 2012-07-16
    • 1970-01-01
    • 2018-04-14
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    相关资源
    最近更新 更多