2016-07-08 8 views
0

ウェブフォームサイトに複数のブロックがあります。私はそうのように、それらを崩壊するためにブートストラップを使用しています:ブートストラップを使用しているとき、私の要素の一部がランダムに折りたたまれていないのはなぜですか?

protected void Page_Load(object sender, EventArgs e) 
    { 
     this.DataBind(); 
     //some other code 
    } 

にDataBind()が呼び出されているので、私はその<%番号のコンテンツIDを前提としています

<div class="span<%# CurrentBlock.Span > 0 ? CurrentBlock.Span.ToString() : "12" %> info-link-header info-link-header-title expandable-link-heading" data-toggle="collapse" data-target="#<%# ContentId %>" style="position: relative;"> 
    <!--some content--> 
<div class="expandable-container collapse" id="<%# ContentId %>"><!--some more content--></div> 

ここでコードビハインドこのファイルのです%> code-blockは正しい値を取得する必要があります。 私が経験している問題は、展開するdivをクリックすると、クラス属性が「折りたたみ」を生成できないことです。ちょうど「折りたたみ」が表示され、Chrome Devツールでコンテンツを表示するとレンダリングされますしかし、それは見えません。 Chrome Devツールで「折り畳み」を追加すると問題は解決しますが、もちろんこれは自動的に発生する必要があります。もっと混乱しているのは、ローカルでビルドすると、ブロックが毎回正しく展開/折りたたまれます。必要なときに「折りたたむ」が追加され、必要なときに「折りたたむ」状態に戻ります。私が開発サーバーに公開すると、「折りたたみ」はランダムに生成されません。 これを修正するにはどうすればよいですか?ありがとう!

答えて

0

この質問にはちょうど答えました。この背後にある問題は、データターゲット属性を含むdivがC#プロパティを使用して一意のID値を取得していたことです。この値は、DateTime.Nowでミリ秒を生成し、それを折りたたみdivのid属性の値と、最上位divのdata-targetの値として使用して作成されました。私のものよりも速いマシンでは、devのサーバーのように、id属性に同じ値を作成したページ上の2つまたは3つのdivに同じミリ秒の値を得るのに十分な速さで実行されていると仮定します。 Id属性の同じ値がDOMを破り、コンテンツを隠していました。

解決策:GUIDオブジェクトを作成してid属性の一意の値を作成し、DOMをそのまま維持する 'ContentId'プロパティを作成しました。

関連する問題