0

基本的に、クライアント コントロール内で、クエリを呼び出してテーブルからデータを取得し、出力に基づいてボタンを作成し、コード ビハインドから 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. いくつの場所があるかわかりません (少なくとも 1 つ)。
  2. 場所の名前の長さと、次の行にオーバーフローし始めるポイント。

そのパネルのコレクション項目をループして、取得した「行」の数を確認し、レンダリングが開始される前に高さを動的に調整するために使用できるツールは何ですか。

または不可能ですか?

4

2 に答える 2

0

これにより、CSS フロートのアイデアが 浮かびました。これらを 1 行に収めるにはどうすればよいでしょうか。

<asp:UpdatePanel ID="UP1" runat="server" >
 <ContentTemplate>
   <div class="dataBlockPurple " id="DelegationID" runat="server" 
     style="height:auto">
    <div style="width:auto;  padding-bottom:2px;">  </div> 
     <h1> Drill Down Per Site </h1>
     <div style="display:block; padding-top: 5px; " ></div>
     <asp:Panel ID="DrilldownPanel" runat="server"> </asp:Panel>
    <div style="clear: both;"></div>
   </div>
</ContentTemplate>

<div style="clear: both;"></div> パネルの下に追加しましたが 、動作します。

于 2013-08-29T09:57:33.397 に答える