Поддерживать диалоговый центр с динамическим контентом - PullRequest
1 голос
/ 30 апреля 2010

У меня будет диалоговое окно со следующим

$("#statusbox").dialog({
    autoOpen: false,
    bgiframe: true,
    modal: true,
    width: 'auto',
    height:'auto',
    title:"Check Order Status",
    buttons: {
        Find: function() {
            get_status();
        },
        Close: function() {
            $(this).dialog('close');
        }
    }
});

И когда пользователь нажимает кнопку поиска, он запускает Ajax и возвращает заказы диалоговому окну, и он динамически изменяет размер, но тольковыдвигает коробку внизЕсть ли способ заставить окно расширяться вверх и вниз, чтобы диалоговое окно оставалось по центру?

Также, если было достаточно содержимого, оно могло бы потенциально выходить за границы страницы, поэтому я мог бы подумать, что мог бымаксимальная высота, чтобы предотвратить это, но что мне делать, если они изменили размер окна?

Я попытался добавить maxHeight: 500, и это не помешало ему расширяться от дна.

Ответы [ 2 ]

1 голос
/ 01 мая 2010

Хорошо, хорошо, у меня все работает, ну вроде не на 100%, но чертовски близко.

Я установил позицию «сверху», поскольку auto всегда расширяется вниз. Затем я добавил открытую функцию, как предложено , в заявку в качестве обходного пути, чтобы autoHeight соблюдает maxHeight.

Тем не менее, я действительно хотел использовать рост, а не документ, и я не уверен, почему мне пришлось вычесть 200 из этого?

$("#statusbox").dialog({
    autoOpen: false,
    bgiframe: true,
    modal: true,
    width: 'auto',
    height:'auto',
    position: 'top',
    title:"Check Order Status",
    open: function(event, ui) {
        $(this).css({'max-height': $(document).height()-200, 'overflow-y': 'auto'});
    },
    buttons: {
        Find: function() {
            get_status();
        },
        Close: function() {
            $(this).dialog('close');
        }
    }
});
1 голос
/ 30 апреля 2010

У вас есть код, который помещает диалог в середине экрана, я полагаю? Запустите его после того, как он будет заново заполнен новой информацией.

Напишите новый код, который гарантирует, что поле не будет выше окна. Если это так, установите высоту диалогового окна равной высоте окна (или меньше, если вы хотите заполнить), и установите overflow в scroll. Запускайте этот код всякий раз, когда они изменяют размер окна.

...