C# 打开对话框后,根据内容高度有条件地调整JQuery对话框的大小
今天早上的大部分时间我都是这样看的,但我没有发现任何东西能帮我做到这一点 目标 我试图在JQuery对话框中复制maxHeight选项的行为。 此选项仅在调整对话框大小后应用,我希望此属性在打开对话框时应用,而不是在调整大小时应用 除非发布一个新版本的补丁,否则我能做的就是解决问题 关于我的项目的信息 C中的ASP.NET3.5# 细节 我必须打开一个包含gridview(在对话框使用的div中)的对话框,在该对话框中,正常使用可以显示从1或2行到几十行的任何内容C# 打开对话框后,根据内容高度有条件地调整JQuery对话框的大小,c#,javascript,jquery,asp.net,.net-3.5,C#,Javascript,Jquery,Asp.net,.net 3.5,今天早上的大部分时间我都是这样看的,但我没有发现任何东西能帮我做到这一点 目标 我试图在JQuery对话框中复制maxHeight选项的行为。 此选项仅在调整对话框大小后应用,我希望此属性在打开对话框时应用,而不是在调整大小时应用 除非发布一个新版本的补丁,否则我能做的就是解决问题 关于我的项目的信息 C中的ASP.NET3.5# 细节 我必须打开一个包含gridview(在对话框使用的div中)的对话框,在该对话框中,正常使用可以显示从1或2行到几十行的任何内容 我在上找到了一个解决方案,这意
函数显示参考任务(标题){
//关于弹出对话框
document.getElementById('litReferedTasks')。style.display='';
//关于même div一方的对话
$('litReferedTasks')。对话框({
自动打开:对,
莫代尔:是的,
可调整大小:正确,
表演:'放下',
隐藏:“放下”,
宽度:800,
最小高度:0,
身高:500,
标题:'T–che'+s+'référée'+s+'de'+标题
});
/*选项1(已使用):*/var heightDiv=document.getElementById('litReferedTasks').style.height;
/*选项2:///var heightDiv=$(this).height($('#litReferedTasks').height());
如果(高度div<500)
{
$('litReferedTasks')。对话框('option','height',heightDiv);
/*备选方案我尝试了*//$(“#dialog”).dialog('option','height',heightDiv);
}
}
这是我的部门:
如您所见,我希望我的函数打开对话框,然后确定包含gridview的div的大小,如果大小小于500像素,我希望对话框高度调整为gridview,否则对于大内容,我将使用滚动条将其保持在500像素高
谢谢你在这方面的帮助
更新2:
下面的代码可以工作,但如果关闭我的对话框并重新打开它,则在大内容上调整大小失败。
知道为什么吗?基本上它只工作一次,直到我刷新页面并刷新缓存(Ctrl+F5)
更新1:
我将我的js脚本和@Paul Graffam给我的东西结合使用:
将div设置为inline block
似乎已经奏效,但js完成了大部分工作:
函数显示参考任务(标题){
//关于même div一方的对话
$('litReferedTasks')。对话框({
自动打开:对,
莫代尔:是的,
可调整大小:正确,
表演:'放下',
隐藏:“放下”,
宽度:800,
最小高度:0,
打开:功能(事件、用户界面){
$(this.css({'overflow-y':'auto'});
},
标题:'T–che'+s+'référée'+s+'de'+标题
});
//调整对话框的大小,使其适合高达500px的内容,之后将自动溢出。
var heightDiv=$('litReferedTasks').height();
如果(heightDiv>450)$('litReferedTasks')。对话框('option','height',500);
}
然后,div填充整个对话框,当它变大时溢出。
首先打开对话框以适应div,不管它有多大,但随后查看div的大小并将对话框的大小调整为500px(如果大于500px)
看起来它成功地做到了我想要的,在div上使用
max height
会带来大小限制和问题。我想出了一个简单的方法来实现这一点,就是将对话div的css设置为max height
设置为500px,然后可以删除对话框中的高度设置。这样,超过500px的任何值都将设置为溢出,而小于该值的任何值都将自动调整大小,因为高度现在默认为自动
由于gridview使用表,我认为将div的显示设置为display:inline block是很重要的
并删除将显示设置为nothing的行
我在这里用您的一些代码建立了一个示例:
另外,我注意到您一直在使用document.getElementById
,但由于您使用的是jQuery,因此不需要这样做。相反,您可以通过执行以下操作来选择元素:$(“#litReferedTasks”)
例如
document.getElementById('litReferedTasks').style.height代码>变为$('#litReferedTasks')。高度()代码>谢谢你的回答,保罗。但是,我确实尝试在t上使用max height属性