C# 在asp.net中从codebehind执行javascript

C# 在asp.net中从codebehind执行javascript,c#,jquery,asp.net,fancybox,C#,Jquery,Asp.net,Fancybox,我只需要在数据库中指定的特定日期从代码隐藏启动此脚本 我需要根据CMS系统中指定的日期将图像显示为fancybox 我将编写逻辑以在Default.aspx中显示图像或不显示图像,然后以某种方式将这段代码从Default.cs传递到MarterPage Javascript$(window.load)(function()代码块 <Script> $(window).load(function () { I want this code to fire a

我只需要在数据库中指定的特定日期从代码隐藏启动此脚本

我需要根据CMS系统中指定的日期将图像显示为fancybox

我将编写逻辑以在Default.aspx中显示图像或不显示图像,然后以某种方式将这段代码从Default.cs传递到MarterPage Javascript
$(window.load)(function()
代码块

    <Script>
     $(window).load(function () {

    I want this code to fire at a particular location of master page. I am not sure suppose here.
///HERE???

    });
    </Script>
我对这个有点迷茫

我只想在Default.aspc文件中执行逻辑检查,并仅在Default.aspx页面中将图像显示为花式方框。但如果我在Default.aspx文件中写入另一个“$(window.load(){}”);
代码块,则花式方框无法正确显示

我怎样才能在没有任何问题的情况下实现这一点

更新:

我成功地完成了。这是基于Irina Bogomaz发布的解决方案

到目前为止,这是工作,我可以添加完整的逻辑代码后面稍后

    $(window).load(function () {

       if (window.showMessage) {
            // alert(imgPath);
            //logic to create fancybox
                    $("a.fancybox-messageboard").fancybox({
                        width: 600,
                        height: 440,
                        closeClick: true,
                        hideOnOverlayClick: true,
                        href: imgPath
                    }).trigger('click');
        }

   });


CODE BEHIND

    protected override void OnPreRender(EventArgs e)
    {
        string imgMB = "'http://upload.wikimedia.org/wikipedia/commons/1/1a/Bachalpseeflowers.jpg'";
        string sScript = "var showMessage = true; var imgPath=" + imgMB;
        Page.ClientScript.RegisterStartupScript(this.GetType(), "MyScript", sScript, true);
    }

也许你会用这种方式

首先将aspx页面设置为获取服务并使用web方法(_service.aspx)

然后在default.aspx页面中,使用jquery ajax调用该服务

  $(function () {
  $.ajax({
                    url: '../_service.aspx/binddata',
                    type: 'POST',
                    data: "  {'yourDatabaseObject':" + JSON.stringify(Parameters) + "}",
                    datatype: 'html',
                    contentType: 'application/json; charset=utf-8',
                    success: function (data) {
                      $('a.fancybox-messageboard').fancybox({ width: 600, height: 440,closeClick: true, hideOnOverlayClick: true, href: 'http://upload.wikimedia.org/wikipedia/commons/1/1a/Bachalpseeflowers.jpg'   }).trigger('click');;
                    },
                    error: function (request, status, err) {
                        //   alert(status);
                        //alert(err);
                    }
                });
  });
试试这个:

string myscript = "$('a.fancybox-messageboard').fancybox({ width: 600, height: 440,closeClick: true, hideOnOverlayClick: true, href: 'http://upload.wikimedia.org/wikipedia/commons/1/1a/Bachalpseeflowers.jpg'   }).trigger('click');"

 ScriptManager.RegisterClientScriptBlock(this, this.GetType(), Guid.NewGuid().ToString(), "<script>" + myscript  + "</script>", false);
string myscript=“$('a.fancybox-messageboard').fancybox({width:600,height:440,closeClick:true,hideonOverlyclick:true,href:'http://upload.wikimedia.org/wikipedia/commons/1/1a/Bachalpseeflowers.jpg'})。触发器('单击')
ScriptManager.RegisterClientScriptBlock(this,this.GetType(),Guid.NewGuid().ToString(),“+myscript+”,false);

您可以通过以下方式实现:

母版页:

<script type="text/javascript">
     $(window).load(function () {
         if (window.isFancybox) {
             //logic to create fancybox
         }
     });
</script>

@KnowledgeSeeker您是否检查了浏览器控制台是否有任何可能出现的错误?可能将您的js脚本包装在文档中。ready Function可提供帮助。它在参数列表showMessage之后提供语法错误“SyntaxError:missing”)(无论在window load或jquery.load中,还是在任何我仍然得到错误
ReferenceError:showMessage未定义的地方,我在何处定义我的函数都无关紧要。
@KnowledgeSeeker可能与脚本加载顺序和脚本执行有关。您是否尝试使用ScriptManager.RegisterStartupScript signanture注册脚本代替RegisterClientScriptBlock?抱歉,我想不出任何其他方法来帮助您
string myscript = "$('a.fancybox-messageboard').fancybox({ width: 600, height: 440,closeClick: true, hideOnOverlayClick: true, href: 'http://upload.wikimedia.org/wikipedia/commons/1/1a/Bachalpseeflowers.jpg'   }).trigger('click');"

 ScriptManager.RegisterClientScriptBlock(this, this.GetType(), Guid.NewGuid().ToString(), "<script>" + myscript  + "</script>", false);
<script type="text/javascript">
     $(window).load(function () {
         if (window.isFancybox) {
             //logic to create fancybox
         }
     });
</script>
protected void Page_Load(object sender, EventArgs e)
    {
        var fanceBoxDate = new DateTime(2013, 11, 20); //get date from CMS system
        if (DateTime.Today == fanceBoxDate)
        {
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "fancyBox", "var isFancybox = true", true);    
        }
    }