我在一个页面上有两个网格,它们似乎总是位置:固定的。
我希望他们滚动与页面时,溢出滚动条出现在身体上。然而,网格始终停留在同一位置,并且不会与页面内容的其余部分一起滚动。
有没有办法让UltraWebGrid成为相对的,并与页面的其余内容一起向上滚动?
这似乎在IE6中有效,但在IE8中无效。所有的jQuery/CSS hack都没有成功。
发布于 2011-01-28 23:10:50
以防万一它对任何人都有用。我发现,由于某种原因,组件创建的表中的每个对象都有"position: relative“属性。当您删除它时,该表的行为与其应有的行为相同。
因此,我编写了此代码来删除此属性。我复制并粘贴了由Infragistics创建的表的名称,因此请更改它(或者找到更好的方法获取它^^)
function removeRelativePosition(item) {
var elt;
if(item == '') {
elt = document.getElementById('ctl00xmasterContentPlaceHolderxwPanReportsxuwGridReport_main');
}
else {
elt = item;
}
//Call this function recursively on every child
if(elt.childNodes !== undefined) {
for(var i=0;i< elt.childNodes.length; i++) {
removeRelativePosition(elt.childNodes[i]);
}
}
//Then remove the attribute
if(elt.style !== undefined) {
elt.style.position = '';
}
}
//Run this function when your page is ready
$(document).ready(function() {
removeRelativePosition('');
});发布于 2011-09-28 04:21:15
非常相似的问题和相关的参考链接,可能对任何在这里登陆的人都有帮助:
这个为我破解了它,把我的 runat=server 改成了,然后神奇的是溢出和滚动又能正常工作了。这不是一种好的做法,而是一种变通办法。这是因为
“…。如果页具有内联表达式,则以不同的方式创建页的controls集合。在没有内联表达式的页中,controls集合中的第一个元素是一个文本控件,该控件具有页面顶部和第一个服务器控件之间的所有html。当存在内联表达式时,controls集合中的第一个元素是页面上的第一个服务器控件(通常是元素或)。
网格需要包含所有标记的文字来确定网格的doctype,因为它需要根据页面是处于quirks模式还是标准模式来呈现略有不同的内容。最大的区别之一是它为滚动区域添加了一个“position:relative”样式,以防止行溢出网格的问题。
解决这个问题的方法是将内联代码移到代码后面。使用Page.ClientScript.RegisterClientScriptBlock方法根据Request.Params"expired“值生成javascript。……“
http://wagnerblog.com/2007/09/creative-terminology-and-an-infragistics-ultrawebgrid-bug/
这个似乎对我没有帮助,但是ymmv
http://blogs.infragistics.com/forums/p/21880/79596.aspx:
网格使用相对定位。它的容器也应该有position:relative,这样网格就不会突出。
https://stackoverflow.com/questions/3406345
复制相似问题