我有一个JQuery的代码,一个包含带有任务列表的网格视图的div对话框。该对话框符合内容确定,但如果加载了数百个任务,对话框就会变得太大,不能手动调整大小,因此我需要编写一种方法,使其以可管理的大小打开。
在任何人提出建议之前,我尝试将div上的max- higher属性设置为500 we ,这很好,除非div不会填充整个对话框,如果对话框高于500 we,这是我们希望的。我还尝试直接在对话框上设置maxHeight属性,但这只在手动调整对话框大小时生效,而不是在对话框打开时生效。当对话框打开比屏幕更大时,无法完成。
因此,我编写了这段声明对话框的代码,如果加载了20多个任务,则应该将对话框的大小调整到500 So。这样,内部的div在任何时候都会完全填充对话框,并且对话框的大小仍然可以管理。
function ShowReferedTasks(title, s, taskCount) {
//On crée le dialog à partir de la même div
$('#litReferedTasks').dialog({
autoOpen: true,
modal: true,
resizable: true,
show: 'drop',
hide: 'drop',
width: 800,
minHeight: 0,
title: 'Tâche' + s + ' référée' + s + ' de ' + title
});
//if more than 20 refered tasks are found
if (taskCount > 20) {
$('#litReferedTasks').dialog('option', 'height', 500);
$('#litReferedTasks').dialog('option', 'position', 'center');
}
}
从父网格视图的每一行中的一个按钮调用此代码,加载每一行的任务。
当我刷新页面并刷新缓存(ctrl+F5),然后打开一些任务列表时,会发生这样的情况。
基本上,调整代码的大小部分只适用于刷新页面和刷新缓存后打开的第一个对话框。我认为,在第一次打开对话框之后,一定要记住一些东西,但是我是一个JQuery和JS的新手,我找不到答案。
<div id="litReferedTasks" style="background-color: White; display: none; overflow:auto; height:95%;">
<asp:GridView ID="gvReferedTasks" runat="server" OnRowDataBound="gvReferedTasks_RowDataBound" Width="97.5%" Visible="false">
</asp:GridView>
<asp:Label ID="lblNoReferedTasks" runat="server" Visible="false" Width="100%"></asp:Label>
</div>
有什么帮助吗?
发布于 2012-08-03 20:35:41
好的,如果在打开对话框后设置了选项,那么高度可能不会产生影响,但是如果将高度放入初始对话框创建代码中,则设置的高度应该很好:
function ShowReferedTasks(title, s, taskCount) {
var dialogOptions = {
autoOpen: true,
modal: true,
resizable: true,
show: 'drop',
hide: 'drop',
width: 800,
minHeight: 0,
title: 'Tâche' + s + ' référée' + s + ' de ' + title
};
//if more than 20 refered tasks are found
if (taskCount > 20) {
dialogOptions.height = 500
}
//On crée le dialog à partir de la même div
$('#litReferedTasks').dialog(dialogOptions);
}
发布于 2012-08-03 20:37:17
我想你把.dialog函数搞得太复杂了.最简单的方法是在autoOpen设置为false的情况下创建一个对话框,而不是每次都尝试重新初始化它。我想你会有更好的运气:
// Do this once when the document is ready
$(function() {
$('#litReferedTasks').dialog({
autoOpen: false,
modal: true,
resizable: true,
show: 'drop',
hide: 'drop',
width: 800,
minHeight: 0
});
});
function ShowReferedTasks(title, s, taskCount) {
$('#litReferedTasks').dialog('option', 'title', 'Tâche' + s + ' référée' + s + ' de ' + title);
if (taskCount > 20) {
$('#litReferedTasks').dialog('option', {
height: 500,
position: 'center'
});
}
$('#litReferedTasks').dialog('open');
}
https://stackoverflow.com/questions/11802759
复制相似问题