【发布时间】:2016-03-14 21:43:31
【问题描述】:
我已将我的下拉列表与数据库绑定。但是在每个 PostBack 上,下拉列表中的项目会再次重复。
例如 OnPage Load 我在下拉列表中有这些项目 1,2,3,4.. 等 现在假设页面获取 postBack 然后它看起来像 1,2,3,4,1,2,3,4
Vb代码
Private Sub hospitals_Load(sender As Object, e As EventArgs) Handles Me.Load
Me.PopulateAreas()
End Sub
Private Sub PopulateAreas()
If IsPostBack Then
Dim citySelector As DropDownList = Page.Master.FindControl("locationSelector")
Using conn As New MySqlConnection()
conn.ConnectionString = ConfigurationManager _
.ConnectionStrings("conio").ConnectionString()
Using cmd As New MySqlCommand()
cmd.CommandText = "Select * from areas where areaCity Like '" + citySelector.SelectedItem.ToString + "%'"
cmd.Connection = conn
conn.Open()
Using sdr As MySqlDataReader = cmd.ExecuteReader()
While sdr.Read()
Dim item As New ListItem()
item.Text = sdr("areaName").ToString()
item.Value = sdr("areaID").ToString()
'item.Selected = Convert.ToBoolean(sdr("IsSelected"))
areasList.Items.Add(item)
End While
End Using
conn.Close()
End Using
End Using
End If
更新
我有包含城市下拉列表的母版页。我正在对我的内容页面使用母版页控件,如下所示。
Dim citySelector As DropDownList = Page.Master.FindControl("locationSelector")
现在在我的 PopulateArea() 类中有查询,其中 WHERE 子句具有城市选择器。因此,根据城市,我的区域被获取。
【问题讨论】:
-
那是因为您已将代码放在回发子句中。将其放在 Not Postback 子句中。
-
@yogihosting 我有母版页,在该母版页下我有所有城市的 dropDowncontrol。现在我正在对我的内容页面使用母版页控件。如果我按照您所说的方式进行操作,那么该地区将一无所获。查看我的更新帖子
-
我认为现在您的下拉控件位于母版页中。所以你必须在母版页本身的not postback子句中编写代码,因为这里的母版页控件(下拉列表)不会直接在内容页中访问。您还可以通过使用 F9 键在 Visual Studio 中放置断点来检查它给出的错误。