2011-08-05 16 views
0

些細な問題だと思われますが、解決策を特定することはできません。項目をドロップダウンに挿入する際に問題が発生する

私はデータテーブルへのドロップダウンバウンドを持っています。私は位置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() 

    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

ありがとうございます。私はむしろ私のアプリケーションコードをデータベースとは別にしておきます。しかし、あなたは良い解決策を導いてくれました。レコードを取得してdtAbstractsに格納したら、バインドする前に新しいdatarowを挿入しました。 –

関連する問題