在Master页面中使用Fancybox时不会触发

时间:2014-01-30 20:42:22

标签: c# javascript jquery asp.net fancybox

我想在Fancybox中显示搜索结果。代码在Web表单中工作正常,但是当我与母版页集成时,奇特的框没有打开。请给我一个解决方案! 我创建了两个Web表单,Default1.aspx和Default2.aspx Default1.aspx 中的代码如下所示,

<head runat="server">
<title></title>
<!-- Add jQuery library -->
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>

<!-- Add mousewheel plugin (this is optional) -->
<script type="text/javascript" src="/fancybox/lib/jquery.mousewheel-3.0.6.pack.js"></script>

<!-- Add fancyBox -->
<link rel="stylesheet" href="/fancybox/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
<script type="text/javascript" src="/fancybox/source/jquery.fancybox.pack.js?v=2.1.5"></script>
</head>
<body>
<form id="form1" runat="server">
   <div>
       <script lang="javascript" type="text/javascript">

         $(document).ready(function (){
            $('#fancybox').fancybox({
                  autoDimensions: false,
                  height: 400,
                  width: 700,
                  type: "iframe"
              });
         });

     </script>
     <a id="fancybox" runat="server" style=" visibility: hidden "></a>
     <asp:Literal ID="Literal1" runat="server"></asp:Literal>
     <asp:TextBox ID="TextBox1"  runat="server"></asp:TextBox>
     <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
   </div>
</form>
</body>

**Default1.aspx.cs**

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            TextBox1.Text = Request.QueryString["cargoNo"];
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {

        fancybox.Attributes["href"] = "~/Default2.aspx?cargoNo=" + TextBox1.Text.Trim();
        Literal1.Text = "<script> $(document).ready(function() {$(\"#fancybox\").trigger('click');});</script>";

        clear();
    }
    public void clear()
    {
        TextBox1.Text = "";
    }

}

在Default2.aspx中,我添加了一个Sql数据源并使用Gridview来显示它。

在文本框中输入数字并单击button1。 serach将启动并在fancybox中显示结果。上面的代码工作得很好。 当我将其添加到母版页时,Fancybox没有触发。单击Twhen按钮,页面刚刚刷新。所有回复都表示赞赏。我是asp.net的新手。请帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

首先,确保你没有在你的母版页中调用Jquery源代码,因为我看到你在Default1.aspx上调用了Jquery,因为Jquery应该加载一次。其次,如果您不希望按钮进行回发,请将其添加到按钮:UseSubmitBehavior="False"。希望这个帮助