2017-03-03 3 views
0

Ich habe eine Dropdown-Liste "Server", die während des Formularladevorgangs durch den folgenden Code ausgefüllt wird. Die Datenbank in der Verbindungszeichenfolge enthält eine Liste von Servernamen, die ohne Probleme mit dem folgenden Code ausgefüllt werden.Anfangswert der DropDownList sollte leer sein

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 

Als nächstes habe ich eine andere Dropdown-Liste "Instanzen". Die Daten, die in diese ddlist eingetragen werden, befinden sich auf einem anderen Server/einer anderen Datenbank. Also, je nach der vorherige Auswahl (ddlist_server) I-Daten sind bevölkern wie in Code unten gezeigt:

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 

Instanzen ddlist erfolgreich bevölkert wird, aber der erste Wert ist thefirst Datensatz in der Tabelle, aber meine Forderung ist dies leer sein. Der Grund dafür ist, mag ich Server Side Validierung tun, wie in dem folgenden Code dargestellt:

<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> 

Ich benötige Ihre Hilfe darauf, den ersten Eintrag leer in ddl_Instance oder Validierung ddl_Instance

+0

Just do 'DropDownList_Database.Items.Add ("")' vor Ihrer 'Do While'loop – Pikoh

+0

Vielen Dank für Ihre Zeit Pikoh, die funktionierte. Die ddl_database-Validierung zeigt jedoch nicht die Meldung "Select a Database" an, wenn der Eintrag ddlist leer ist und nach einem Klick auf die Schaltfläche. Bitte beraten. – Frank

+0

Fügen Sie InitialValue = "IdOfBlankItemAdded" zum erforderlichen Feldvalidator hinzu –

Antwort

0

Wie Pikoh angegeben.

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

Um das leere Element hinzuzufügen.

Ändern Sie dann Ihren angeforderten Feldvalidierer, damit er den Anfangswert durch Hinzufügen kennt.

InitialValue="0" 
+0

Danke Ryan, das hat funktioniert. – Frank

Verwandte Themen