harsh
harsh

Reputation: 109

Error Cannot have multiple items selected in a DropDownList

This is my code and i am getting an error ..Cannot have multiple items selected in a DropDownList. when the page loads it select "ALL" in DDLModality but when i change DDLModality.selectedvalue to any "value" then no error but again when i change to "ALL "getting the error.

onchange of DDLMODALITY submit the form form1.target = ""; form1.action = ""; form1.submit();

 ' USED TO ADD REFERRING PHYSICIAN IN THE DROPDOWN DYNAMICALLY 
    If CInt(Session("CenterID")) = 0 Then
        sql = "Select Ref_Phy_ID,Name from Ref_Phy_Master WHERE Ref_Phy_ID in(Select distinct Ref_Phy_ID from Patient_Details where Ref_Phy_ID <> '')"
    Else
        sql = "Select Ref_Phy_ID,Name from Ref_Phy_Master WHERE Ref_Phy_ID in(Select distinct Ref_Phy_ID from Patient_Details where Ref_Phy_ID <> '') And Center_ID = " & Session("CenterID")
    End If
    objDS = objFun.RunQuery(sql)
    ' USED TO REFRESH THE PAGE WHIN IT IS POSTED BACK 
    ' USED TO DISPLAY DEFAULT FIRST ITEM IN THE DROPDOWN 
    Dim Li1 As New ListItem()
    Li1.Text = "ALL"
    Li1.Value = ""
    cboRefPhy.Items.Add(Li1)
    ' USED TO COUNT THE STUDIES IN THE DROPDOWN 
    If (objDS.Tables(0).Rows.Count <> 0) Then
        ' USED TO CIRCULATE LOOP UPTO THE RECORD COUNT
        Dim i As Integer
        For i = 0 To objDS.Tables(0).Rows.Count - 1
            ' USED TO CREATE NEW ITEM IN THE DROPDOWN 
            Dim Li As New ListItem
            Li.Text = objDS.Tables(0).Rows(i)("Name").ToString()
            Li.Value = objDS.Tables(0).Rows(i)("Ref_Phy_ID").ToString()
            'USED TO ADD ITEMS IN THE DROPDOWN 
            cboRefPhy.Items.Add(Li)
        Next
    End If
    'USED TO SAVE THE CHANGES IN DATASET  
    objDS.AcceptChanges()
    ' USED TO CLOSE THE DATABASE CONNECTION 
    objDS.Dispose()
    cboRefPhy.ClearSelection()
    cboRefPhy.SelectedValue = Convert.ToString(Request.Form("cboRefPhy"))

    'USED TO ADD MODALITY IN THE DROPDOWN DYNAMICALLY
    If CInt(Session("CenterID")) = 0 Then
        sqlStudy = "Select Modality_ID,Modality from Hospital_Modality_Master WHERE Modality_ID in(Select distinct Study_ID from Patient_Details where Study_ID <> '')"
    Else
        sqlStudy = "Select Modality_ID,Modality from Hospital_Modality_Master WHERE Modality_ID in(Select distinct Study_ID from Patient_Details where Study_ID <> '') And Center_ID = " & Session("CenterID")
    End If
    'Dim objDS As New DataSet()
    objDS = objFun.RunQuery(sqlStudy)
    ' USED TO REFRESH THE PAGE WHIN IT IS POSTED BACK 
    ' USED TO DISPLAY DEFAULT FIRST ITEM IN THE DROPDOWN 
    'Dim Li1 As New ListItem()
    Li1.Text = "ALL"
    Li1.Value = ""
    ' Dim all As String
    ' all = "All"
    'Ddl_Modality.Items.Add(all)
    DDLModality.Items.Add(Li1)
    ' USED TO COUNT THE STUDIES IN THE DROPDOWN 
    If (objDS.Tables(0).Rows.Count <> 0) Then
        ' USED TO CIRCULATE LOOP UPTO THE RECORD COUNT
        Dim i As Integer
        For i = 0 To objDS.Tables(0).Rows.Count - 1
            ' USED TO CREATE NEW ITEM IN THE DROPDOWN 
            Dim Li As New ListItem
            Li.Text = objDS.Tables(0).Rows(i)("Modality").ToString()
            Li.Value = objDS.Tables(0).Rows(i)("Modality_ID").ToString()
            'USED TO ADD ITEMS IN THE DROPDOWN 
            DDLModality.Items.Add(Li)
        Next
    End If
    'USED TO SAVE THE CHANGES IN DATASET  
    objDS.AcceptChanges()
    ' USED TO CLOSE THE DATABASE CONNECTION 
    objDS.Dispose()
    DDLModality.ClearSelection()
    DDLModality.SelectedValue = Convert.ToString(Request.Form("DDLModality"))


    ' USED TO ADD STUDY IN THE DROPDOWN DYNAMICALLY 
    If CInt(Session("CenterID")) = 0 Then
        sqlStudy = "Select Study_ID,Study_Desc from Study_Master WHERE Study_ID in(Select distinct Study_ID from Patient_Details where Study_ID <> '')"
    Else
        sqlStudy = "Select Study_ID,Study_Desc from Study_Master WHERE Study_ID in(Select distinct Study_ID from Patient_Details where Study_ID <> '') And Center_ID = " & Session("CenterID")
    End If

    If (DDLModality.SelectedItem.Text <> "ALL") Then
        sqlStudy = sqlStudy & " AND Modality = '" & DDLModality.SelectedItem.Text & "'"

    End If

Upvotes: 1

Views: 8526

Answers (3)

Gunjesh Kumar
Gunjesh Kumar

Reputation: 41

I was facing the same problem. If you add one defined ListItem (in this case Li1) to two or more dropdownlists, this error will occur while assigning selectedvalue to any dropdownlist.

Simple solution is define separate ListItems for separate dropdownlists like Li1, Li2, Li3, etc.

Don't understand the logic behind, but it works!

Upvotes: 1

harsh
harsh

Reputation: 109

Dim Li2 As New ListItem()
      Li2.Text = "ALL"
      Li2.Value = ""  
      DDLModality.Items.Add(Li2)

Upvotes: 0

PraveenVenu
PraveenVenu

Reputation: 8337

try

DDLModality.ClearSelection()

before setting DDLModality.SelectedValue

Upvotes: 3

Related Questions