リスト(myList)のリスト項目をクリックすると、サーバーからデータをロードするdivがあります。そのため、私のリストはページの左側にあり、クリックすると、結果 (表の行としてレンダリングされたアイテムのリストでもあります) が右側に表示されます。構造は次のとおりです。
ページの左側:
<ul id="myList">
<li>List Item 1</li>
<li>List Item 2</li>
<li>List Item 3</li>
<li>List Item 4</li>
</ul>
ページの右側:
<div id="myDiv">
<table style="width:100%;">
<tr><td>data1</td></tr>
<tr><td>data2</td></tr>
.
.
.
.
.
</table>
</div>
データはサーバーから送信されるため、行の長さは可変です。
div 'myDiv' をスクロール可能にする必要があったため、次のようなスタイルを設定しました。
#myDiv { overflow: auto; height: 550px; }
ここで、この div をページの一番下まで拡張する必要があるため、次のように高さを計算し、jquery で設定しています。
$(document).ready(function () {
UpdateDivHeight();
$(window).resize(function () {
UpdateDivHeight();
});
function UpdateDivHeight() {
//update div height
var viewport_ht = $(window).height();
//other relevant code
var cal_ht = *; //calculating height here, viewport_ht - blah blah;
$('#myDiv').height(cal_ht);
$('#myDiv').css("height", cal_ht + "px !important;");
}
});
私が直面している問題は、最初にページにアクセスしたとき、またはブラウザーウィンドウのサイズを変更したときに高さを正しく設定しますが、同じページのリストアイテムをクリックすると、高さを正しく計算します (アラートで検証されます) )、css スタイルで上書きされ、再び 550px に設定されます。
編集:
データが入ってくると、For Each ブロックを使用してページに挿入します
<div id="myDiv">
<table class="myTable" style="width:100%">
@For Each item In Model
@<tr>
<td>@item.Name<br />
<span style="font-size:0.7em;">@item.City, @item.egion</span>
</td>
</tr>
Next
</table>
</div>
それを克服する方法はありますか?