ASP.NETでリストボックス内の値

タグの編集
投稿者 kojiro  (社会人) 投稿日時 2021/10/5 11:30:39
お久しぶりです。VB2019を使って、ASP.NETでwebフォームを構築しています。
質問1 リストボックスで、選択しているItemの数を取得する方法
ListBox1.SelectedItems.Countの命令が準備さrていません。
質問2 リストボックスの選択しているItemの初めからの番号を取得する方法
質問3 あるリストボックスについての数(質問1,2など)は、そのプロジェクト内のどのクラスから参照できますよね。
                         以上です。
                         よろしくお願いします。
投稿者 kojiro  (社会人) 投稿日時 2021/10/5 11:39:33
質問1 リストボックスで、選択しているItemの数を取得する方法
だけでいいです。
投稿者 kojiro  (社会人) 投稿日時 2021/10/5 16:33:34
For j = 0 To ListBox1.Items.Count - 1

next
のように、記述できていました。
投稿者 るきお  (社会人) 投稿日時 2021/10/5 20:12:11
>質問1 リストボックスで、選択しているItemの数を取得する方法
簡単に取得できる方法は用意されていないのでループで調べることになります。
取得例を紹介します。

Public Class WebForm1
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load
        ListBox1.Items.Add("Apple")
        ListBox1.Items.Add("Banana")
        ListBox1.Items.Add("Cat")
        ListBox1.Items.Add("Dog")
        ListBox1.SelectionMode = ListSelectionMode.Multiple
    End Sub

    Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

        Dim selectedCount As Integer

        For Each item As ListItem In ListBox1.Items
            If item.Selected Then
                selectedCount += 1
            End If
        Next

        ClientScript.RegisterStartupScript(Me.GetType"script1",
                                           $"<script>alert('{selectedCount}個選択されています。')</script>")


    End Sub
End Class


>質問3 あるリストボックスについての数(質問1,2など)は、そのプロジェクト内のどのクラスから参照できますよね。
既定では No です。
UIの要素を他のクラスから直接参照・制御するのは一般的にはよい設計ではなく、参照することが必要ならば、引数で渡すなどします。