2010-09-08 73 views
2

編輯:更多的代碼如何讓我的下拉列表默認爲第一行名稱表

Dim oControl As New Forms.Control() 

          Using types As New DataSet 
           With oDal 
            .Parameters.Clear() 
            .Execute(sql, types) 
           End With 
           With ddlType 
            .DataSource = types.Tables(0) 
            .DataTextField = "Name" 
            .DataValueField = "TypeId" 
            .Items.Clear() 
            .DataBind() 
            If .Items.Count > 0 Then 
             .SelectedIndex = 0 
            End If 
           End With 

          End Using 
          'set queue type with our asp:dropdownlist control 
          oControl = New Forms.Control(Forms.Control.ControlType.ComboBox) 
          'we need to connect the two controls 
          oControl.Id = ddlType.ID 

          'add it to the grid 
          With .Columns.Add("CredentialTypeId", "Type", 85) 
           .Editor = oControl 
          End With 

出於某種原因,當你點擊下拉 - 「0」顯示拖欠。它需要是表格中的第一個文本/值對。該表僅在此時返回一行,這是正確的,但0仍然是默認值。

任何人都知道爲什麼?

+0

我很困惑,如果只返回一條記錄,它如何默認爲0?這個記錄是否等於0?是否有更多的代碼我們沒有看到? – VoltaicShock 2010-09-08 14:35:27

+0

該記錄不等於零。我不知道爲什麼會發生這種情況。這幾乎就好像'0'被添加到下拉菜單中作爲第一項,它正在成爲默認值。我嘗試手動設置默認的項目(0),這沒有做任何事情,項目(1),這是錯誤的。 – Scott 2010-09-08 14:37:19

+0

是的,我通常有一個方法,將默認值添加到下拉列表中,所以我有東西要測試以查看用戶是否選擇了任何內容。 – VoltaicShock 2010-09-08 14:56:09

回答

1
With ddlType 
    .DataSource = types.Tables(0) 
    .DataTextField = "Name" 
    .DataValueField = "TypeId" 
    .DataBind() 
    If .Items.Count > 0 Then 
     .SelectedIndex = 0 
    End If 
End With 

編輯
鑑於你的結果和你的意見,我覺得無論是你的類型表是空的或你的代碼沒有運行。嘗試添加一些斷點並測試一些值。

types.Tables(0) isnot nothing 
types.Tables(0).Rows.Count 

EDIT2
看你的代碼,我看到了一個不同的問題。你永遠不會填充oControl。我不確定你爲什麼要創建一個全新的控件,並將它的ID設置爲ddlType的ID。你爲什麼不用oControl來做你的數據綁定?或者將ddlType附加到您的網格?

+0

由於某種原因,這是行不通的。這是我第一次嘗試。 ddl在ExtJS網格內,如果這有所改變。 DDL實際上是一列。 – Scott 2010-09-08 14:39:35

+0

該表確實有數據。下拉列表變爲{0,firstElement}。我只想讓它顯示firstElement而不是0,並且我沒有任何想法,0甚至在第一時間到達那裏。 – Scott 2010-09-08 17:43:17

+0

你在正確的軌道上。我的錯。我遵循了你的思考過程,最終發現當插入新行時,一個JavaScript方法正在運行,並由於某種原因將數據庫中的typeId更改爲第一個。錯誤代碼=/ – Scott 2010-09-08 17:52:09

0

我知道這可能不會奏效,但無論如何要說。

您是否嘗試在綁定數據之前清除所有項目?

ddType.Items.Clear(); 
+0

不起作用= / – Scott 2010-09-08 15:05:38

相關問題