ASP.NET菜单控件在回发后位置发生变化。

3
我目前正在测试一个使用asp:menu控件制作的ASP.NET菜单。现在菜单正是我想要的样子,但每当有一个更新整个页面的postback时,它会向下移动一点(只有一次,第二个postback不会再移动一点)。在IE6中向下移动得很多,在IE8中向下移动得很少,在Firefox 4中根本不会移动。
我已经排除了以下原因:
  • 不是CSS - 我已经从这个菜单中删除了所有CSS。
  • 不是任何属性 - 我已经注释掉了与自定义菜单相关的所有内容。
  • 不是其他元素变大 - 我把它特别放在了一个表格中,其中唯一的内容就是asp:menu控件。
  • 我该怎么办?有什么替代方案吗?有没有可以使用的属性,或者可以将其放入的外部元素以使其保持静止?
    是的,每台计算机都在使用Internet Explorer。这对于任何Web开发人员都是噩梦。
    ---[更新]-----
    我在另一个项目中构建了一个菜单,效果并不存在!我把完全相同的文件复制到我的项目中,并运行它,问题就出现了。
    这可能是ASP.NET版本的差异吗?

    请展示一些代码。仅凭您的描述很难提供帮助。 - Josh Mein
    我假设当菜单向下移动时,它是被空白区域推下去的。如果是这种情况,那么右键单击>检查元素并找出是什么在将您的内容向下推。 - BentOnCoding
    沿着它的父级发布该元素的HTML,否则无法预测任何内容。 - Usman Masood
    我使用VS 2010和Framework 4.0在一个全新的空白网站中测试了您上面提供的标记,并且在IE7、Chrome或Firefox中无法重现您的问题。不幸的是,我没有IE6或IE8可用。您是否尝试在一个新的空白网站项目中使用您上面的标记? - pseudocoder
    @Marcello 当你将上述代码隔离到仅包含此代码的空白Web表单中时,它是否仍会在这些浏览器中出现问题? - Brian Webster
    @pseudocoder:为了在所有版本的IE中进行测试,我使用IETester - 你可能已经听说过它,但我想分享一下。 - Tr1stan
    3个回答

    0

    我曾经遇到过同样的问题。我的导航菜单位于UpdatePanel中,我将UpdateMode从Always更改为Conditional - 问题解决了。这是在我的主页面上。


    0
    你有用IE Web开发者工具栏检查过回发前后该区域的HTML代码吗?这似乎更像是浏览器问题,所以工具栏会给你详细信息,告诉你间隙中出现了什么或者是什么将其向下推。

    谢谢!这让事情变得更有趣,但也更加困惑。看看这个链接:http://i.stack.imgur.com/tLP4G.jpg 。不知道这个 #text 是什么.. 点击时没有显示任何属性。 - Marcelo
    这是因为在您的aspx文件中,href后面有一个空格字符。在href后按ENTER键缩进时,也会引入空格字符。请删除它并再次检查是否有效... - Pronay Sharma
    并不是这样的.. 我甚至已经测试了菜单中的一个单独项目,没有导航,只设置了一个属性(文本),也没有缩进或格式问题.. - Marcelo

    0
    如果应用程序是在asp.net 4.0中,查看它第一次呈现后和postback后页面的源代码。确保在两者上都呈现为div或table。
    我目前遇到类似的问题,即我的菜单在postback时“散开”。在postback之前,它呈现为divs。在postback之后,它以表格形式呈现。
    菜单上特别有一个属性“RenderingMode”,应该可以控制此问题,但对我来说不起作用。

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接