我在我的一个应用程序中调用了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" />
它是打开弹出窗口,但我想先回复我的页面。 如果有人知道,请帮助我。
答案 0 :(得分:1)
如果您需要回发,那么打开ColorBox,您可以执行以下操作:
ASCX:
<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可以解决这个问题:
ASCX:
Codebeind:
private void Call_Click(object sender, EventArgs e)
{
//Handle click as normal
}
如果您需要使用UpdatePanel,但在updatepanel返回后仍然调用javascript:
ASCX:
<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
}
答案 1 :(得分:1)
您无法调用按钮单击事件,因为颜色框会在页面上的表单外部呈现向用户显示的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));
这解决了问题,因为现在你将在form标签!!中提供colorbox渲染div。