2009-05-17 6 views
4

목록 상자에서 선택한 모든 항목을 텍스트 상자에 표시하려고합니다. 현재 내가 성공하지 않고 다음과 같은 일을 해요 : 발생한다 무엇ASP.NET 목록 상자에서 선택한 항목을 텍스트 상자에 표시

For i As Integer = 0 To lb_words.ListCount 
    If lb_words.Selected(i) = True Then 
     tb_text.Text &= " Presto" 
    End If 
Next 

내 목록 상자 (lb.words)의 모든 선택 항목에 대해 내가 내 텍스트 상자에 추가 할 것입니다. 내 목록 상자에 Apple, Orange 및 Banana가 포함되어 있고 Apple 및 Banana를 선택하면 텍스트 상자 텍스트에 "Apple Banana"가 표시되어야합니다 ...

방금 ​​ASP.NET을 소개해 줬습니다. .

+0

문제 일 수 있습니다. MsgBox는 서버 측 코드에서 작동하지 않습니다. 클라이언트에 메시지를 표시하지 않으며 서버에서 메시지를 표시하지 않습니다 .-) –

+0

그래, 메시지 상자의 내용을 제거했습니다. 결과보다 루프에 더 집중했습니다. .. 내 루프로보고 문제가 – Bobby

답변

3

이 시도 :

Dim s as String = "" 

For each x as ListItem in lb_words.Items 
    if x.Selected Then s &= x.Text & " " 
Next 
+0

StringBuilder를 사용하는 것이 더 효율적입니다. –

+0

네,하지만 그는 간단하게 요청했고 문자열에 추가하는 것은 String 빌더를 다루는 것보다 간단합니다 –

+0

이 코드는 유망 해 보입니다. 그러나 'ListBoxItem'amd 'x.isselected'에 대한 오류가 발생합니다 ... Option Explicit 및 String On이 있습니까? ListBoxItem 오류로 인해 ListItem 또는 ListBox로 바꿀 수 있습니다. – Bobby

0

하나의 솔루션이 목록에있는 모든 값을 연결하는 매소드로 .toString()를 오버라이드 (override)하는 것입니다.

+0

것은 모든 값, 사용자가 선택 한 값 –

1

aspx 페이지 :

<asp:ListBox ID="myList" runat="server" SelectionMode="Multiple"> 
     <asp:ListItem>Apple</asp:ListItem> 
     <asp:ListItem>Orange</asp:ListItem> 
     <asp:ListItem>Grapes</asp:ListItem> 
    </asp:ListBox> 
    <br/> 
    <asp:TextBox id="myText" runat="server"></asp:TextBox> 

코드 숨김 (C#을)

StringBuilder sb=new StringBuilder(); 
     for (int i = 0; i < myList.Items.Count; i++) 
      sb.Append(myList.Items[i].Selected ? myList.Items[i].Text + " " : ""); 
myText.Text=sb.ToString(); 
0

대신 모든 레코드를 반복하고 그 (것)들의 사이에서 선택한 항목을 찾는 lb_words.SelectedItems를 사용할 수 있습니다. 다음과 같은 코드를 사용할 수 있습니다 : 당신이 애플 & 바나나를 선택한 경우 텍스트 상자가 포함됩니다,

 Dim s As New StringBuilder() 

     For Each item As Object In Me.lb_words.SelectedItems 
      s.Append(item) 
      s.Append(" ") 
     Next 

     Me.TextBox1.Text = s.ToString() 

을 '애플 바나나'

+0

, ASP를 원하지 않는다는 것입니다. net listbox에는 SelectedItems 메서드가 없습니다. –

1

당신이 버튼을 클릭 이벤트를 사용하여이 코드를 시도하십시오 목록 상자를 바인딩 사용하는 경우

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    For Each objDataRowView As DataRowView In Me.ListBox1.SelectedItems 
     Me.TextBox1.Text &= (objDataRowView("ITEM LIST").ToString() & " ; ") 
     'here "ITEM LIST" is the "column name" which is used as DATASOURCE for LISTBOX1 
    Next 
End Sub 
3
 foreach (ListItem Mail in ListBox1.Items) 
     { 
      if (Mail.Selected) 
      { 
       Mail.Selected = true+","; 
       mail.To.Add(Mail.ToString());         
      } 
관련 문제