0

我在我的一个应用程序中调用 jquery 颜色框。我可以打开它,但我希望我的页面先回发,同时打开颜色框。我试过下面的代码。

aspx:

<script type="text/javascript">
        function OpenColorBox() {
            $.colorbox({
                opacity: 0.1,
                width: '350px',
                height: '350px',
                iframe: true,
                href: '/MMP/MMPhome.aspx',
                onLoad: function () {

                    $('#cboxClose').remove();
                },
                onClosed: function () {

                }
            });
        }

    </script>

<asp:Button ID="Call" runat="server" Text="Save this Search Criteria" 
                    OnClientClick="OpenColorBox(); return false;" onclick="Call_Click" />

它正在打开弹出窗口,但我想先发回我的页面。如果有人知道怎么做,请帮助我。

4

2 回答 2

1

如果您需要回发,那么打开您的 ColorBox,您可以执行以下操作:

澳交所:

<asp:Button ID="Call" runat="server" Text="Save this Search Criteria" 
                    onclick="Call_Click" />

代码隐藏:

private void Call_Click(object sender, EventArgs e)
{
   Page.ClientScript.RegisterClientStartupScript(this.GetType(), "OpenColorBoxAfterClick", "OpenColorBox();", true);
   //Handle the rest of your code
}

如果您需要在打开 ColorBox 时进行回发,则需要使用 Ajax。包含按钮的 UpdatePanel 可以解决问题:

澳交所:

代码隐藏:

private void Call_Click(object sender, EventArgs e)
{
   //Handle click as normal
}

如果您需要使用 UpdatePanel,但在 updatepanel 返回后仍然调用 javascript:

澳交所:

<asp:Button ID="Call" runat="server" Text="Save this Search Criteria" 
                    onclick="Call_Click" />

代码隐藏

private void Call_Click(object sender, EventArgs e)
{
   ScriptManager.RegisterStartupScript(this, this.GetType(), "OpenColorBoxAfterClick", "OpenColorBox();", true);
   //Handle click as normal
} 
于 2012-07-19T16:37:29.353 回答
1

您无法调用按钮单击事件,因为 colorbox 呈现 div,该 div 在页面上的表单之外显示给用户。要解决这个问题,您必须对插件进行一些小改动。

在 colorbox 插件中查找 appendHTML() 函数并替换以下行:

if (!$box && document.body)

和:

if (!$box && document.forms[0])

在方法的最后一行,替换:

$(document.body).append($overlay, $box.append($wrap, $loadingBay));

$(document.forms[0]).append($overlay, $box.append($wrap, $loadingBay));

这解决了问题,因为现在您将在表单标记内拥有呈现的 div 的颜色框!

于 2012-08-18T17:54:07.407 回答