2011-04-12 2 views
0

asp.net을 배우고 있으며 데이터베이스의 CSV 문자열에있는 항목이 처음 선택 될 CheckBoxList가 있어야합니다.asp.net vb CSV에서 선택된 CheckBoxList

조금 길어 보였으므로 내가 가장 좋은 방법을 생각해 봤는지 궁금해 했더라도 작동하고 있습니까?

제공되는 도움에 감사드립니다.

ASPX

<asp:CheckBoxList ID="rh_type" runat="server" CssClass="chkbox" 
RepeatLayout="Flow" CausesValidation="True"> 
<asp:ListItem>House</asp:ListItem> 
<asp:ListItem>Flat/Apartment</asp:ListItem> 
<asp:ListItem>Bungalow</asp:ListItem> 
<asp:ListItem>Any</asp:ListItem> 
</asp:CheckBoxList> 
<br /> 
<br /> 
<asp:Button ID="Button1" runat="server" Text="Button" /> 

CODE

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 

    Dim i As Integer 
    Dim str_rh_type As String = "House,Bungalow" 
    Dim split As String() = str_rh_type.Split(","c) 

    For Each s As String In split 
     'Response.Write(s & "<br />") 

     For i = 0 To rh_type.Items.Count - 1 
      If rh_type.Items(i).Text = s Then 

       rh_type.Items(i).Selected = True 

      End If 
     Next 

    Next s 

End Sub 

다시 한번 감사 J.

답변

1

코드는 작동하지만 어쩌면 유지 보수에 대한 일부 조정이 도움이 될 것이다. 또한 드롭 다운 항목을로드하기 위해 중첩 된 루프가 반드시 필요한지 확실하지 않습니다.

코딩 실습에 대한 결정을 내리기위한 참고서 일뿐입니다. 확실히 어떤 사람들에게는 효과가있는 것이 다른 사람들에게는 효과가 없습니다. 여기

내가이 ...

ASP.NET 컨트롤을 코드 줄 방법은 다음과 같습니다 CheckBoxListHomeType

<asp:CheckBoxList ID="CheckBoxListHomeType" runat="server" 
    CssClass="chkbox" RepeatLayout="Flow" CausesValidation="True" /> 
... 
  • ID 기억하기와 인텔리 날의 나머지를 얻을 것이다 쉽습니다. (또는 또 다른 일반적인 접근 방식은 ID로 cblHomeType입니다).

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
        If Not Page.IsPostBack Then 
         LoadHomeTypes() 
        End If 
    End Sub 
    
    Protected Sub LoadHomeTypes() 
        Dim houseTypes = "House,Bungalow,Flat/Apartment,Any" 
        For Each houseType As String In houseTypes.Split(",") 
         CheckBoxListHomeType.Items.Add(New ListItem(houseType)) 
        Next 
    End Sub 
    
    • 상태 유지 : rh_type 그냥 쉽게 할 수 있지만,이 제어 어떤 종류의 유사 ID를 정말 코드를

    VB.NET을 유지하면 도움이 같은 이름을 돕기 위해 IntelliSense를 얻기 별도의 로직 인 LoadHomeTypes 함수를 사용하면 코드를보다 쉽게 ​​읽을 수 있습니다. 만들기

  • 새로운 ListItem 동안
  • Not Page.IsPostBack (당신은 기존을 취소해야하는 경우이 기능의 정상에 CheckBoxListHomeType.Items.Clear()을 추가 할 수 있습니다)에 CheckBoxList 항목을 반복 할 필요를 제거해야합니다 homeTypes의 목록을 반복 check를 사용하면 변경할 필요가없는 한 모든 다시 게시 값을 드롭 다운로드 할 필요가 없습니다.
+0

덕분에 checkboxlist ID를하다, 때문에 작동하지 않습니다 몇 가지가있다 내가 뭘하려고하지만 몇 가지 도움이되는 포인터 .... 거기에 다시 감사드립니다. – JBoom

0

이 좋은 답변입니다,이

Dim ds As DataSet 
    ds = Insertstu.searchrec(txtsearch.Text) 
    txtnm.Text = ds.Tables(0).Rows(0)("stuname").ToString() 
    txtadd.Text = ds.Tables(0).Rows(0)("stuaddress").ToString() 
    txtph.Text = ds.Tables(0).Rows(0)("stuph").ToString() 
    rdobtnsex.Text = ds.Tables(0).Rows(0)("sex").ToString() 
    Dim arr As String() 
    Dim quali As String = ds.Tables(0).Rows(0)("qualified").ToString() 
    arr = quali.Split(",") 
    Dim i As Integer 
    For Each itm As String In arr 
     For i = 0 To chkqualify.Items.Count - 1 
      If chkqualify.Items(i).Text = itm Then 
       chkqualify.Items(i).Selected = True 
      End If 
     Next 
    Next 

를 '시도'chkqualify 대답 할 시간을내어