2017-03-03 26 views
0

我有一個下拉列表「服務器」,它在表單加載事件期間由下面的代碼填充。連接字符串中的數據庫具有使用下面的代碼填充而沒有任何問題的服務器名稱列表。DropDownList的初始值應爲空

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

    If Not IsPostBack Then 
     Populate_Server() 
    End If 
End Sub 

Public Sub Populate_Server() 
    Dim query As String = "select ServerName, ServerId from Server_Names" 
    BindDropDownList(DropDownList_Server, query, "ServerName", "ServerId", "") 
End Sub 

接下來,我有另一個下拉列表「實例」。要填充到此ddlist中的數據位於另一個服務器/數據庫中。因此,根據先前的選擇(ddlist_server)我填充數據如下圖所示代碼:

Public Sub Populate_Instance() 

    Dim State As String 
    Dim ConnectString As String 
    Dim SelectSQL As String 
    Srv = DropDownList_Instance.SelectedItem.Text 
    DropDownList_Instance.Items.Clear() 


    ConnectString = "Data Source=" & Srv & ";Initial Catalog=master;Integrated Security=true" 

    Using Con As New SqlConnection(ConnectString) 
     Con.Open() 
     SelectSQL = "Select * from Instance;" 

     Dim com As SqlCommand = New SqlCommand(SelectSQL, Con) 
     Dim dr As SqlDataReader = com.ExecuteReader() 
     Do While dr.Read = True 
      DropDownList_Database.Items.Add(dr.GetString(0)) 
     Loop 
     'DropDownList_Database.DataBind() 
    End Using 
End Sub 

實例ddlist被成功地填充,但第一個值,在表中最早出現的記錄,但我的要求是這樣的爲空。是的原因,我想要做的服務器端驗證顯示在下面的代碼:

<asp:RequiredFieldValidator ID="req1" runat="server" Style="top: 85px; 
     left: 378px; position: absolute; height: 20px; width: 160px" Font- Bold="True" Font-Names="Trebuchet M S" Font-Size="Small" 
     ControlToValidate="DropDownList_Instance" validationgroup="Info" 
     ErrorMessage="Select an Instance" InitialValue=0> 
</asp:RequiredFieldValidator> 

我需要在製作的第一項空白ddl_Instance或驗證ddl_Instance

+0

只是做'DropDownList_Database.Items.Add( 「」)'之前你'待辦事項While'loop – Pikoh

+0

感謝您的時間Pikoh,即工作。但是,當ddlist條目爲空並且按鈕單擊後,ddl_database驗證不會顯示「選擇數據庫」消息。請指教。 – Frank

+0

將InitialValue =「IdOfBlankItemAdded」添加到所需的字段驗證程序 –

回答

0

由於Pikoh說明你的幫助。

DropDownList_Database.Items.Add("", "0") 

添加空白項目。

然後更改您的reuqired字段驗證程序,以便通過添加知道初始值。

InitialValue="0" 
+0

感謝Ryan,工作。 – Frank