2

asp.net リストボックス コントロールに水平スクロール機能を追加するにはどうすればよいですか?

4

4 に答える 4

3

水平スクロールを追加する例:

<asp:ListBox ID="List" runat="server" Height="320px" Width="100%" style="overflow-x:auto;"SelectionMode="Multiple">
</asp:ListBox>

CSS3 オーバーフロー-x プロパティ: http://www.w3schools.com/cssref/css3_pr_overflow-x.asp

于 2015-04-08T19:10:49.313 に答える
1

本当に必要な場合は、HTML が次のようなカスタム ListBox クラスを作成することをお勧めします: SELECT の幅を最も広い値の幅 (スクロールバーの最大幅など) に設定します。次に、その SELECT を「制約された」サイズの DIV 内にラップし、オーバーフロー時にスクロールさせます。

これらの行から始まる簡単な例を次に示します。コントロールによって吐き出される HTML のタイプは次のとおりです。

<div style="width:200px; height:100px; overflow:auto;">
<SELECT size="4">
<OPTION
Value="1">blahblahblahblahblahblahblahblahblahblah blahblah</OPTION>
<OPTION Value="2">2</OPTION>
<OPTION Value="3">3</OPTION>
<OPTION Value="4">4</OPTION>
</SELECT>
</div>

したがって、本質的には、この HTML をレンダリングする複合カスタム コントロールを作成することをお勧めします。「複合制御asp.net」という用語で、Googleは非常に簡単に作成できます。

最も困難な部分は、div のサイズを選択ボックスのサイズに合わせて、スクロールバーを適切に機能させたり整列させたりすることです。だからこそややこしい。

ソース

また、これを見てください: ListBox コントロールに水平スクロール バーを自動的に追加/非表示にする

編集:スクロールバーの高さを含めるのに十分な高さがあることを確認してください。そうしないと、両方のコントロールに垂直スクロールバーが表示されます。

于 2008-09-05T11:12:34.243 に答える
1

このリスト ボックスを DIV 内に配置し、DIV のスタイルをオーバーフローに設定すると、必要に応じてスクロール バーが自動的に表示されます。

aspx ページには次の DIV があります。

<div id='hello' style="Z-INDEX: 102; LEFT: 13px; OVERFLOW: 
            auto; WIDTH: 247px; POSITION: absolute; TOP: 62px; HEIGHT: 134px" >

asp:listbox を DIV 定義内に配置します。page_load 関数では、DIV でオーバーフローしないように、リスト ボックスの幅と高さを適切に定義する必要があります。

private void Page_Load(object sender, System.EventArgs e)
{
    if (!IsPostBack)
    {

        int nItem = Convert.ToInt32(ListBox1.Items.Count * 17);
        ListBox1.Height = nItem; 

        ListBox1.Width = 800; 

    }
}

http://www.codeproject.com/KB/custom-controls/Horizo​​ntalListBox.aspxで入手可能なコードとソリューション

于 2008-09-05T11:16:02.597 に答える
0

表示目的でのみ行う場合は、マルチライン プロパティを持つ Textbox を使用して別の方法で行うことができます。テキストに改行を追加することで!

    List<Yourclass> result = null;
    result = Objname.getResult(Parameter1, Parameter2);
    foreach (Yourclass res in result)
    {
        txtBoxUser.Text += res.Fieldname1.ToString();
        txtBoxUser.Text += "\r\n" + res.Fieldname2.ToString();
        txtBoxUser.Text += "\n\n";
    }

したがって、上記のコード(改行とすべて)のように、すべてのデータが適切な形式で配置されたマルチラインテキストボックスのビューが表示されます。また、テキストボックスの幅を超えた場合は、テキストが折り返されます。また、スクロールバーについて気にする必要はありません。ここでは、すべての結果がテキストボックスの動作に従ってラップされているため、垂直スクロールバーのみが表示されます。

于 2015-06-26T14:08:14.247 に答える