jquery模式打开到整页

时间:2009-04-07 20:30:50

标签: jquery modal-dialog

我有一个嵌套的jquery模态Modal1& modal2都包含updatePanels。要更新面板我正在使用javascript:

var prm = Sys.WebForms.PageRequestManager.getInstance();
prm._doPostBack('UpDateLookUp','');

UpDateLookUp是modal1的updatePanel的id。 Modal1包含modPa2中updatePanel中的链接。 Modal1 updatePanel是面板外的搜索条件(Find),当我在modal1上工作时很好但是当我打开modal2(有一个wpdatePaneltoo)并且我回到modal1时,选择Find modal2打开到整页并显示之前的信息它是封闭的&返回modal1。如果我点击打开modal2的链接一切都很好,它只会在我选择一个不同的按钮时发生。

我是jquery的新手所以请帮忙。这就是我们商店的方式。

1 个答案:

答案 0 :(得分:0)

这里有两三件你想要的东西。首先,如果你正在挂钩的任何控件正在你的ajax post-back中消失,你将需要在使用以下内容重新加载页面时重新挂钩你的事件处理程序:

function pageLoad(sender, args) 
{
    if (args.get_isPartialLoad()) 
    {
        //Re-hook code here
    }
}

或使用$(document).ready()函数中的.live()函数添加事件挂钩。 JQuery UI's API site已充分记录了此功能。

另外,如果你想要一个动画效果在回复之前隐藏某些东西(这将阻止它在动画完成之前改变),使用.Promise()。Done()函数如下:

$("#Detail").fadeOut().promise().done(function () 
{
    __doPostBack('<%= UpdatePanel1.ClientID %>', '');
});

最后,当你想要一个回发完成以显示其结果时发生动画时,你可以将所有这些与一个布尔变量结合使用,该变量在pageLoad函数中启用一个动作,如下所示:

var ShowDetailsOnLoad = false;

function pageLoad(sender, args) 
{
    if (args.get_isPartialLoad()) 
    {
        if (ShowDetailsOnLoad)
        {
            $("#Detail").fadeIn();
            ShowDetailsOnLoad = false;
        }

        $('DetailVisMaker').click(function() 
        {
            $("#Detail").fadeOut().promise().done(function () 
            {
                __doPostBack('<%= UpdatePanel1.ClientID %>', '');
                ShowDetailsOnLoad = true;
            });
        });
    }
}

如果是div,HTML和&amp; UpdatePanel设置正确,此代码将显示详细信息div,当用户单击其中的链接时,它将淡出细节部分,运行回发,然后在回发完成后淡入。