2014-01-16 2 views
1

나는 계속 사용하는 드롭 다운 목록이 있습니다. 이 드롭 다운을로드하는 메소드를 작성했습니다. 메서드를 호출 할 때 항목의 텍스트 부분 만 전달됩니다. 이 방법함수 또는 메서드에서로드 된 드롭 다운 목록

Public Shared Function ddlLoadResumes() As DropDownList 
    Dim connString As String = ConfigurationManager.ConnectionStrings("LocalSqlServer").ConnectionString 
    Dim conn As SqlConnection = New SqlConnection(connString) 
    Dim ddSelectResumeList As New DropDownList 
    Dim dtResumes As New DataTable() 

    Dim comm As SqlCommand = New SqlCommand("usr_SelectResumeList", conn) 
    comm.CommandType = CommandType.StoredProcedure 
    comm.Parameters.Add("@UserName", SqlDbType.VarChar, 50).Value = Membership.GetUser().UserName 

    Try 
     Dim daResumes As New SqlDataAdapter(comm) 
     conn.Open() 
     daResumes.Fill(dtResumes) 

     ddSelectResumeList.DataSource = dtResumes 
     ddSelectResumeList.DataTextField = "ResumeName" 
     ddSelectResumeList.DataValueField = "Res_ID" 
     ddSelectResumeList.DataBind() 


     ' Handle the error 
    Catch ex As Exception 
    Finally 
     conn.Close() 

    End Try 


    Return ddSelectResumeList 

End Function 

이며, 이것은 내가 그것을

ddSelectResume.DataSource = MailClass.ddlLoadResumes.Items 
ddSelectResume.DataBind() 

Dim ltitem As ListItem 
     For Each ltitem In ddSelectResume.Items 
      Response.Write(ltitem.Value + "-----" + ltitem.Text) 
     Next returns only the text part 

내가 DataTextField 및 DataValueField 모두 필요 호출 방법이다. 미리 감사드립니다.

답변

0

이것은 이상한 접근 방식입니다. 나는 더 나은 방법 그냥 가지고있을 거라고 생각하지만

ddSelectResume = MailClass.ddlLoadResumes 

Dim ltitem As ListItem 
     For Each ltitem In ddSelectResume.Items 
      Response.Write(ltitem.Value + "-----" + ltitem.Text) 
     Next 

는 "ddlLoadResumes는 DataTable에 (dtResumes)을 반환 : 문제를 해결하는 한가지는 당신의 함수가 반환하는 객체 드롭 다운리스트에 ddSelectResume 동일하게 설정하는 것입니다 ddSelectResumes의 datasoure로 설정하십시오 (DataTextField 및 DataValueField 속성을 설정해야 함).

+0

@Tzvei가 작동하지 않는다는 것이 무슨 의미입니까? 아마도 Items 컬렉션을로드 할 수 있습니까? 'ddSelectResume.Items = MailClass.ddlLoadResumes.Items'. – jadarnel27

+0

의미는 bind() 후에 ddSelectResume이 비어 있다는 것입니다. ddSelectResume은 데이터 소스를 기대합니다 – Tzvei

+0

@ Tzvei 왜 Bind()라고 부릅니까? 그것은 이미'ddlLoadResumes'에 묶여 있습니다. – jadarnel27