Asp.net 错误:不能在DropDownList中选择多个项目
这是我的代码,我收到一个错误..不能在DropDownList中选择多个项目。当页面加载时,在DDLMotality中选择ALL,但当我将DDLMotality.selectedvalue更改为任意值时,则无错误,但当我更改为ALL时,再次选择获取错误 更改表格后,请提交表格 表1.target=; 表1.action=; 表格1.提交Asp.net 错误:不能在DropDownList中选择多个项目,asp.net,vb.net,Asp.net,Vb.net,这是我的代码,我收到一个错误..不能在DropDownList中选择多个项目。当页面加载时,在DDLMotality中选择ALL,但当我将DDLMotality.selectedvalue更改为任意值时,则无错误,但当我更改为ALL时,再次选择获取错误 更改表格后,请提交表格 表1.target=; 表1.action=; 表格1.提交 ' USED TO ADD REFERRING PHYSICIAN IN THE DROPDOWN DYNAMICALLY If CInt(Sess
' 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
试一试
在设置ddl.SelectedValue之前,我面临着同样的问题。如果将一个已定义的ListItem(在本例中为Li1)添加到两个或多个dropdownlist,则在将selectedvalue分配给任何dropdownlist时会发生此错误 简单的解决方案是为单独的下拉列表(如Li1、Li2、Li3等)定义单独的列表项
我不明白背后的逻辑,但它是有效的 对不起,我不知道VB,但在C中,您可以在说DDLModality.SelectedValue=Convert.toString.Quest.FormDDLModality之前设置DDLModality.SelectedValue=-1。这将取消选择以前的任何选择,因此当您确实选择某个内容时,尚未选择值。在您编写代码时,很容易受到SQL注入攻击。请使用参数化查询。查看为什么需要DDLModality.SelectedValue=Convert.ToStringRequest.FormDDLModality设置DDLModality.SelectedValue=-1设置DDLModality后,我收到相同的错误。请为下拉列表发布呈现的标记好吗?下拉列表中是否有重复项?否//当页面加载时,请在DDLModality中选择全部,但当我更改时DDLModality.selectedvalue为任意值,然后无错误,但当我更改为ALL时再次出现错误..将Li2设置为新列表项Li2.Text=ALL Li2.value=DDLModality.Items.AddLi2
DDLModality.ClearSelection()
Dim Li2 As New ListItem()
Li2.Text = "ALL"
Li2.Value = ""
DDLModality.Items.Add(Li2)