2011-08-05 3 views
0

사소한 문제인 것처럼 보이지만 해결 방법을 찾아 낼 수는 없습니다.항목을 드롭 다운에 넣는 중 문제가 발생했습니다.

나는 데이터 테이블에 드롭 다운 바운드를 가지고 있습니다. 새 항목을 위치 0에 삽입하려고하지만 컨트롤이로드 될 때 새 listitem 또는 오류가 표시되지 않습니다.

Public Sub Page_Load(ByVal sender As Object, ByVal e As eventargs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     loadRegistrantAbstracts() 
    End If 
End Sub 
Public Sub loadRegistrantAbstracts() 
    Dim obj As New Lookups 
    Dim dtAbstracts As DataTable 

    dtAbstracts = obj.getAbstracts() 

    If dtAbstracts.Rows.Count > 0 Then 
     With ddlAbstracts 
      .DataSource = dtAbstracts 
      .DataTextField = "DisplayName" 
      .DataValueField = "AbstractID" 
      .DataBind() 
      .Items.Insert(0, New ListItem("Select Abstract..", "0")) 
     End With 
    End If 
End Sub 

답변

0

대답, 감사,했다 다음 :

Public Sub Page_Load(ByVal sender As Object, ByVal e As eventargs) Handles Me.Load 
    If Not Page.IsPostBack Then 
     loadRegistrantAbstracts() 
    End If 
End Sub 
Public Sub loadRegistrantAbstracts() 
    Dim obj As New Lookups 
    Dim dtAbstracts As DataTable 

    dtAbstracts = obj.getAbstracts() 

    Dim row As DataRow = dtAbstracts.NewRow 

    row("DisplayName") = "Select Abstract..." 
    row("AbstractID") = "0" 

    dtAbstracts.Rows.InsertAt(row, 0) 

    If dtAbstracts.Rows.Count > 0 Then 
     With ddlAbstracts 
      .DataSource = dtAbstracts 
      .DataTextField = "DisplayName" 
      .DataValueField = "AbstractID" 
      .DataBind() 
     End With 
    End If 
End Sub 
0

DropDownList가 바인딩되어 있으므로 DataTable에 "stuff"가 렌더링됩니다. "Select Abstract ..."옵션을 DataTable의 DataRow로 추가하려고합니다. .DataSource의 소스를 변경하면 DropDownList에 반영됩니다.

는 데이터베이스에서이를로드하는, 그래서 당신은 질의에서 "선택 ..."옵션을 포함하도록 결정할 수 있습니다 대부분의 경우 : 하드 코드 부분에

SELECT 0 AS id, 'Select Abstract ...' AS abstract_name, 0 AS sort_order 
UNION 
SELECT dbo.abstracts.id, dbo.abstracts.name AS abstract_name, 1 as sort_order FROM dbo.abstracts 
ORDER BY sort_order, abstract_name 
+0

답장을 보내 주셔서 감사합니다. IMO 나는 내 응용 프로그램 코드를 데이터베이스와 분리하여 보관하려고한다. 그러나, 당신은 좋은 해결책을 이끌어 낸 좋은 점을 보였습니다. 레코드를 가져 와서 dtAbstracts에 저장하면 바인딩하기 전에 새 datarow를 삽입했습니다. –

관련 문제