4

http://i44.tinypic.com/5ureav.png

私のページが時々レンダリングされるとき、水平メニューはそのように表示されます。なんで?

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" 
    EnableViewState="false" IncludeStyleBlock="false" 
    Orientation="Horizontal" ClientIDMode="AutoID">
    <Items></Items>
</asp:Menu>

通常、ページが大量のデータを読み込んでいるときにこれを行いますが、データの読み込みが完了すると、水平に戻ることはありません。

IE 7、8、9、およびChromeでのテスト。

インターネットを見てみると、z-indexだと言っている人がいましたが、調整しても効果がありませんでした。

IE8の「開発者ツール」を使用してさらにトラブルシューティングを行っていますが、成功しなかったJavaScript呼び出しがいくつか見つかりました。それらが何を意味するのか分かりません。

<script type="text/javascript">
//<![CDATA[
Sys.WebForms.PageRequestManager._initialize('ctl00$MainContent$tsmgrEmployees', 'aspnetForm', ['tctl00$MainContent$uPanelEmployees',''], ['ctl00$MainContent$btnClear','','ctl00$MainContent$txtEUID','','ctl00$MainContent$txtFirstName','','ctl00$MainContent$txtLastName',''], [], 90, 'ctl00');
//]]>
</script>

エラーが発生しました

'Sys.WebForms.PageRequestManager'がnullであるか、オブジェクトではありません

<script type='text/javascript'>new Sys.WebForms.Menu({ element: 'ctl00_NavigationMenu', disappearAfter: 500, orientation: 'horizontal', tabIndex: 0, disabled: false });</script>

エラーが発生しました

'Sys.Webforms.Menu'がnullであるか、オブジェクトではありません

残りのエラーはすべて、これら2つからのカスケードであると思います。jscriptライブラリを更新されたものに置き換える必要があると思いますか?IE8を使用しているので(互換モードではない)、ブラウザに関連している可能性があります。

役立つかもしれないもう1つの奇妙な情報は、開発環境のWinXPProでVisualStudio 2010でソリューションを構築すると正常に機能しますが、サーバー(IIS 7.5、Server 2008 R2)に公開すると機能しなくなることです。最初はデータラグの可能性があると思いましたが、サーバーの接続文字列は、開発環境の接続文字列よりも高速である必要があります。サーバーはローカルホストをターゲットとして使用し、開発ワークステーションはサーバーパスを使用します...したがって、データの遅れはないと思います。

4

3 に答える 3

5

私はこれと同じ問題を抱えていました。asp:Menuコントロールの下にRenderingMode="Table"を作成することで解決しました。

例:

<asp:Menu ID="NavigationMenu" runat="server" CssClass="menu" EnableViewState="false" IncludeStyleBlock="false" Orientation="Horizontal" RenderingMode="Table">
        <StaticMenuItemStyle CssClass="menuitem" />
        <DynamicMenuItemStyle CssClass="menuitem" />

cssをもう少しいじる必要があります(cssの「ul」属性と「li」属性を削除します)。

作成

 <StaticMenuItemStyle CssClass="menuitem" />
 <DynamicMenuItemStyle CssClass="menuitem" />

メニューコントロール(上記のように)では、cssのフォーマットにも役立ちます。

何らかの理由で、メニューリストがこの問題を引き起こしています。これは少なくとも回避策です。

于 2012-07-23T03:56:11.197 に答える
2

Visual Studio 2010 / .NET 4.0以降、 sはsではなくASP:Menu箇条書き()としてレンダリングされます。メニューの予想されるデザインを上書きするsに影響を与えるCSSが必要です。ultableul

于 2012-02-01T22:19:45.513 に答える
2

私も同じ問題を抱えていました。Global.asaxファイルの次の行が原因であることが判明しました。

RouteTable.Routes.MapPageRoute("", "{*dummy}", "~/Default.aspx")

存在しないルートを要求しているユーザーをDefault.aspxページに送りたいと思いました。どうやらこれには、メニューを水平方向にレンダリングするために必要なJSファイルをブラウザが見つけられないという望ましくない副作用があります。

于 2012-08-22T13:35:41.637 に答える