ก็คือว่าทำหน้า search ไว้ค่ะ โดนที่สามารถเลือกข้อมูลจาก List box ได้หลายค่า ซึ่งเราก้อไม่รู้ว่าเขาจะเลือกกี่ค่า
เขียนไว้แบบนี้ค่ะ
เขียน Loop ไว้แบบนี้ค่ะ
Dim i As Integer
Me.lblPM.Text = ""
For i = 0 To Me.lbPM.Items.Count - 1
If Me.lbPM.Items(i).Selected Then
Me.lblPM.Text = Me.lblPM.Text & Me.lbPM.Items(i).Value & ","
End If
Next
สมมุติว่าเขาเลือก 4 รายการ ค่าที่ส่งมา จะเป็น Name=1,2,3,4,
ต้องทำอย่างไรให้มันได้ แค่ 1,2,3,4 (ไม่มีลูกน้ำข้างหลังเลข 4 ค่ะ)คะ
Dim i As Integer
Dim tempStr As String = String.Empty
For i = 0 To Me.lbPM.Items.Count - 1
If Me.lbPM.Items(i).Selected Then
If i=0 Then tempStr = Me.lbPM.Items(i).Value
Else tempStr = tempStr & "," & Me.lbPM.Items(i).Value
End If
Next
Me.lblPM.Text = tempStr
' ใน Loop อย่าใช้ Property ของ Control ไปรับค่าบ่อยๆค่ะ เพราะมันผ่านหลายขั้นตอน
' เอาตัวแปรไปรับแล้วค่อยส่งค่าค่ะ
' ลองรันดูแล้วได้นิคะ ถูกด้วย
Sub Page_Load()
if (Not Page.IsPostBack)
Me.lbPM.SelectionMode = ListSelectionMode.Multiple
Me.lbPM.AutoPostBack = False
''''' ติดตั้งค่า Item ไปค่ะ จะ Bind DataSource ก้อทำไป
End If
End Sub
' ประมาณว่า อยู่ใน Sub Button Click นะคะ จะได้เกิด Event PostBack มาเก็บ ค่าต่างๆ
' ขออภัยเพราะกำลังเขียน c# อยู่ค่ะ จำไม่ได้ละ VB มันยังไง ตอนขึ้นหัว Sub Button Click นี่ค่ะ > <
Dim i As Integer
Dim tempStr As String = String.Empty
Dim SelectedCounter As Integer = 0
For i = 0 To Me.lbPM.Items.Count - 1
If Me.lbPM.Items(i).Selected Then
If SelectedCounter=0 Then tempStr = Me.lbPM.Items(i).Value
Else tempStr = tempStr & "," & Me.lbPM.Items(i).Value
SelectedCounter ++
End If
Next
Me.lblPM.Text = tempStr
' ใน Loop อย่าใช้ Property ของ Control ไปรับค่าบ่อยๆค่ะ เพราะมันผ่านหลายขั้นตอน
' เอาตัวแปรไปรับแล้วค่อยส่งค่าค่ะ
' ขออภัยอย่างแรงค่ะ กำลังมึนแก้ code ตัวเองเหมือนกัน ^^'
Dim tempStr As String = String.Empty
Dim item As String
For Each item In Me.lbPM.SelectedItems
tempStr = tempStr & item & ","
Next
Me.lblPM.Text = tempStr.TrimEnd(",")
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Me.lblPM.Text = ""
Dim i As Integer
For i = 0 To Me.lbPM.Items.Count - 1
'ถ้ามีการเลือกรายการให้ทำ
If Me.lbPM.Items(i).Selected Then
If Me.lblPM.Text = "" Then
'ใส่ข้อมูลครั้งแรก
Me.lblPM.Text = Me.lbPM.Items(i).Value
Else
Me.lblPM.Text = Me.lblPM.Text & "," & Me.lbPM.Items(i).Value
End If
End If
Next
End Sub