基本的に、クライアント コントロール内で、クエリを呼び出してテーブルからデータを取得し、出力に基づいてボタンを作成し、コード ビハインドから ASP:Panel に追加します。
ボタンには、互いの下にブロックとして表示するのではなく、左に並べて表示する CSS があります。
CSS
.button_red2
{ background:url('../../images/button_red_left.gif') no-repeat left top; display:block; font-size:12px; font-weight:bold; line-height:16px; height:21px; padding-left:9px;
padding-top:0px; margin-bottom :2px; text-decoration:none; border-style:none; color:White; width:auto; overflow:visible ; float:left;}
.button_red2 span
{ background:transparent url('../../images/button_red.gif') no-repeat top right;
padding:3px 10px 2px 0px; border-style:none; display:block ;}
コードビハインドで
Dim locationdt = sqlDMLhelper.ExecuteQueryDT(String.Format("select distinct City from {2}{1}{2} where Staff_FK='{0}' order by City ASC", staffID, "EUS-Customer", ControlChars.Quote), cerr)
If Not locationdt.Rows.Count = 0 Then
For i = 0 To locationdt.Rows.Count - 1
Dim Sitename = locationdt.Rows(i).Item(0)
Dim thebutton = New LiteralControl(" <button ID='Button'" & i & " runat='server' class='button_red2' onclick='ClickedSite(""" & Sitename & """);' type='button'> <span> " & Sitename & "</span> </button> ")
DrilldownPanel.Controls.Add(thebutton)
Next
End If
aspxで
<h1> Drill Down Per Site </h1>
<div style="display:block; padding-top: 5px; " ></div>
<asp:Panel ID="DrilldownPanel" runat="server" Height="21" >
</asp:Panel>
常に少なくとも 1 つのボタンがあるため、高さ 21 を安全に指定できます。
コンテナー自体は 600 ピクセル幅に設定されています。
「DrilDownPanel」の高さの値を動的に設定する方法があるかどうか疑問に思っています
- いくつの場所があるかわかりません (少なくとも 1 つ)。
- 場所の名前の長さと、次の行にオーバーフローし始めるポイント。
そのパネルのコレクション項目をループして、取得した「行」の数を確認し、レンダリングが開始される前に高さを動的に調整するために使用できるツールは何ですか。
または不可能ですか?