none
aspxのインデントが狂う RRS feed

  • 質問

  • こんにちは、VB2008にてWEBアプリケーションを開発しています。

    画面のソース(サーバ側コートでなく)ですが、インデントを入れてコントロール等を配置して
    いますが、ある時そのコード達の改行やスペースがなくなってしまいました。

    通常このようなソースが↓↓↓↓↓
    <table>
            <tr>
                    <td>●●●●</td>
            </tr>
    <table>

    このように↓↓↓↓↓
    <table><tr><td>●●●●</td></tr><table>

    量が多いので、非常に見づらく困っています。

    原因はAjaxControlToolkitのtabコントロールだと思います。
    TabPanel単位での改行は残りましたので。
    また、他のTabPanel未使用の画面では発生していません。

    発生するタイミングはまちまちです。最初はあれ?と思い、けっこうがんばって手で直したのですが、
    気がつくとまた、改行がなくなっていて・・・

    技術的な質問ではないのですが、よろしくお願いします。
    2009年10月27日 2:08

すべての返信

  • 自己レスです。

    UpdatePanelを使用した場合も、いつの間にかUpdatePanelの前後に「&nbsp;」が入る事が頻繁にあります。
    見つける度に消すのですが、こちらは実際の画面表示の際に、レイアウトが崩れる原因にもなっています。
    毎回消せばすむのですが、何とも変な挙動です。
    何かの親切のつもりで、VSが行っているのでしょうか?

    プログラミングしていて、このような事はありませんか?
    2009年10月28日 5:54
  • > プログラミングしていて、このような事はありませんか?

    自分の記憶にある限りですが、そのようなことは無かったです。

    こうすれば必ずその問題が発生するといった再現性のある例は
    示せませんか?
    2009年10月28日 13:09
  • SurferOnWwwさん、こんにちは。

    なんとか必ず再現する例を示したいのですが、再現する方法はまちまちです。

    さきほども発生したのですが、他の画面(a.aspx)から、
    <asp:HiddenField・・・ のコントロールを3つほどコピーして、b.aspxに貼り付け、
    IDを変更後、サーバ側のコードを少し修正し、b.aspxの先ほどコピペした辺りで
    スクロールしました。
    すると、インデントが崩れると同時に、&nbsp;が数え切れないくらい全体に挿入されました。
    5行おきくらいに、下のような行が規則正しく挿入されました。
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;・・・・・

    ctrl+zで戻し(&nbsp;・・・の行を消して)、b.aspxの先頭行までctrl+homeで移動して、
    スクロールすると、また&nbsp;・・・の行がどさーっと挿入されました。
    しょうがないので、ctrl+zで戻し、b.aspxを閉じてもう一度開きました。
    一応その後はおとなしく動作しています。頻度は1~2日に1回から数回の割合です。。。


    2009年10月29日 2:14
  • 自分の場合は、何をどのようにコピペしようと、インデントが崩れるとか &nbsp; が挿入される
    ようなことは無く、こちらでは問題が再現できないです。という訳で、すみませんが、全く見当
    がつきません。
    2009年10月29日 12:58
  • SurferOnWwwさん、お返事ありがとうございます。

    検証していただいてありがとうございます。
    こちらでもAjaxControlToolkitのtabコントロールを使用している画面以外では発生しません。
    tabありの画面でも、一日中触っていると気になりますが(昨日は3回発生)、頻度としては
    少ないのかもしれません。
    何とも不思議な現象ですが、あきらめてctrl+zでがんばります。。
    2009年10月30日 0:05
  • 現象について心当たりがあるわけではないのですが、各タブページの内容をユーザーコントロールにして切り出してしまってはいかがでしょうか。

    ページ構造の見通しも良くなるかと思います。
    2009年12月24日 2:54
  • すいません、お返事に気づいていませんでした。。

    その後なんとかだましだまし開発を終わらせ、今はASP.NETの別PJですが、

    tabを使っていないので、再現していません。

    今後のPJでtabを採用する場合(もう画面表示も重いし、二度とtabは使いたくないのですが・・・)、

    ユーザコントロール案にしてみようと思います。

    ありがとうございました。

    2011年5月23日 0:30
  • 私もVS2008とVS2010の両方を使っていますが&nbsp;が勝手に挿入されていたり
    インデントがおかしくなることがあります。
    私はtabは使っていません。

    気が付いたらctrl+zで逃げています。

    できる限り、デザインを更新している時は何もしないで待っているようにしています。
    デザインを更新している時に何かするとなることが多いと感じでいます。

    2011年6月1日 0:00
  • echodevさん、こんにちは。

    echodevさんもですか。tabを使っていない画面でも発生するということは

    tabとは別の原因ですね。AjaxControlToolkitとマスターページはお使いですか?

    tab以外となると、これらが怪しいような気がします。

    または、vs2005をインストールした後で、vs2003をインストールした、というような

    バージョン順に正しくインストールしなかった事も原因かな?と思っています。

    しかし2010でも発生するとのことで、なんなのでしょうね。

    かなり迷惑な現象です。。

    2011年6月1日 0:29
  • VS2010でも発生しているのかはっきりわかりませんでしたが、 VS2008に関しては以下が参考になるかもしれません。

    [FIX、Visual Studio 2008 サービス パック 1 IDE で、Web アプリケーションを作成するといくつかの変更がいくつかのビューで同期されていないまたはいくつかの変更がいくつかのビューで正しく表示されます。
    http://support.microsoft.com/kb/967253

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年6月1日 0:50
    モデレータ
  • AjaxControlToolkitは使っていませんが、マスターページは使っています。そう考えるとマスターページが怪しい気もします。
    順番等は関係ない気がします。私は前のPCでは2008→2010でインストールしました。現在のPCについては2010しか入っていない
    ですが、この現象がおこりました。

    trapemiyaさんのリンクにあるシナリオだとMultiViewとGridViewを使っているのでそれも該当するかもしれません。

    確かに迷惑な現象です。コードを気にしなければ問題ないんでしょうが・・・
    まったく気が付かなくて全部手でインデント修正とと&nbspの削除をしたこともあります・・・

    気が付いたらCtrl+Zする以外ないと私はあきらめています。
    ただ、2010にしてからは回数はかなり減ってほとんど出てないです。

    2011年6月1日 1:28
  • VS2010でも発生するんですね・・・

    私がご紹介したページだと&nbspがたくさん入るのは不具合のように書かれていますので、Connectに上げた方が良いかもしれませんね。

    Visual Studio 2010、.NET Framework 4、そして Silverlight の Connect サイトへようこそ!
    http://connect.microsoft.com/VisualStudioJapan

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2011年6月1日 1:34
    モデレータ
  • そうですね。次回に改善されていればみんな困らないですから。あんまり頻度は多くないですが連絡してみたいと思います。

    2011年6月1日 3:54
  • trapemiyaさんの、リンク先の問題2がかなり近いか同じ問題のようですね。

    >私がご紹介したページだと&nbspがたくさん入るのは不具合のように書かれていますので、Connectに上げた方が良いかもしれませんね。

    私もConnectに上げてみます。

     

    2011年6月1日 6:57