車の情報まとめアプリ05(車両情報_cssでフォーマット整え)
■車両情報の表示に手を加える。
年末にASP.NETからjavascriptへのデータの受け渡しができたので、その表示を整える。
ASP.NETからjavascriptの受け渡しは、一度HiddenFieldへデータを入れてJQueryでそこにアクセスする形にしているため、まず、HiddenFieldへ入れる文字列をString.Formatで整える。
HiddenField1.Value = String.Format("全長:{0}, 全幅:{1}, 定員:{2}, 排気量:{3}, 出力:{4}, トルク:{5}, タンク容量:{6}, 燃費:{7}, テーマ:{8}",
el.<VehicleSpec>.<Length>.Value,
el.<VehicleSpec>.<Width>.Value,
el.<VehicleSpec>.<PersonCapacity>.Value,
el.<VehicleSpec>.<EngineCapacity>.Value,
el.<VehicleSpec>.<MaxPowerOutputkW>.Value,
el.<VehicleSpec>.<MaxTorqueNm>.Value,
el.<VehicleSpec>.<FuelCapacity>.Value,
el.<VehicleSpec>.<FuelConsumptionJC08>.Value,
el.<VehicleSpec>.<Speciality>.Value
)
ここで、elは XElement オブジェクト。<VehicleSpec>, <Length>などは、xmlファイル内の要素だけど、中身を参照するにはこんな書き方もあった。String.Format の {0}, {1}に順番にxmlファイルの指定した内容が入っていく。
次に、JQueryでcssを操作して表示のフォーマットを整える。<script></script>内のコードが下の通り。このsampleJavascript()の関数部分はButtonを押したときに実行される。
<script>
function sampleJavascript() {
let sampleData = document.getElementById('<%= HiddenField1.ClientID %>').value
$(function () {
if ($('#sampleLayer').length) {
$('#sampleLayer').show()
}
else {
$("body").append("<div id='sampleLayer'>" + sampleData + "</div>")
let sampleLayerCss = {
opacity: "80%",
width: "300px",
height: "200px",
"background-color": "white",
border: "dotted",
position: "absolute",
top: "200px",
left: "10px",
}
$("#sampleLayer").css(sampleLayerCss);
}
$('#sampleLayer').click(function () {
$(this).hide()
$('#sampleLayer').hide()
})
});
}
</script>
$(function () { 以下の部分で JQueryを使用する。HTMLの本文(body)に、idがsampleLayerの要素を追加し(append)、そこにデータをもたせる。その後、cssと紐づけてフォーマットを整える。cssの内容としては、幅300px×高さ200pxの背景色が白、点線で囲まれた長方形を画面の上から200px、左から10pxの位置に配置して、透過率80%でその下にくるものを少し見えるようにする。
sampleLayerが表示されている時、その要素の部分をクリックすると、表示されなくなるようにする(hide)。
実行結果が下。ボタンを押すと表示され、データの枠内を押すと画面から消える。
データの単位や改行を付ければ、もう少し見やすくなりそう。細かな点をまとめて、表示については次くらいで終わりかな。