Asp.net dropdownlist在页面回发时被清除
我的页面上有一个绑定到SqlDataSource的FormView。FormView上的一个控件是DropDownList,它在Page_Load上填充(使用特定文件夹中的文件名列表填充) 第一次加载页面时,一切都很顺利。我可以查看文件列表,选择一个,点击“保存”按钮后,在数据库中存储正确的文件名。但是,当页面在回发后刷新时,DropDownList为空 页面加载事件的代码隐藏:Asp.net dropdownlist在页面回发时被清除,asp.net,vb.net,Asp.net,Vb.net,我的页面上有一个绑定到SqlDataSource的FormView。FormView上的一个控件是DropDownList,它在Page_Load上填充(使用特定文件夹中的文件名列表填充) 第一次加载页面时,一切都很顺利。我可以查看文件列表,选择一个,点击“保存”按钮后,在数据库中存储正确的文件名。但是,当页面在回发后刷新时,DropDownList为空 页面加载事件的代码隐藏: If Not Page.IsPostBack Then loadImageList() End If
If Not Page.IsPostBack Then
loadImageList()
End If
被称为“分包商”的分包商:
Protected Sub loadImageList()
Dim SaveLocation As String = Server.MapPath("/images/)
Dim di As New IO.DirectoryInfo(SaveLocation)
Dim fls As IO.FileInfo() = di.GetFiles()
Dim fi As IO.FileInfo
Dim drl As DropDownList = FormView1.FindControl("DropDownList_files")
drl.Items.Clear()
For Each fi In fls
drl.Items.Add(fi.Name.ToString)
Next
End Sub
我读过一些帖子,说这应该在page_init事件中实现,但这样做会导致错误
提前感谢您您应该处理FormView的事件并在此处填写您的下拉列表:
Private Sub FormView1_DataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles FormView1.DataBound
Select Case FormView1.CurrentMode
Case FormViewMode.ReadOnly
Case FormViewMode.Edit
Dim DdlFiles= DirectCast(FormView1.FindControl("DropDownList_files"), DropDownList)
Dim SaveLocation As String = Server.MapPath("/images/)
Dim di As New IO.DirectoryInfo(SaveLocation)
Dim fls As IO.FileInfo() = di.GetFiles()
Dim fi As IO.FileInfo
DdlFiles.Items.Clear()
For Each fi In fls
DdlFiles.Items.Add(fi.Name.ToString)
Next
Case FormViewMode.Insert
End Select
End Sub
回发后,当FormView进行数据绑定时,它可能会被清除。如果您有“Not Page.IsPostBack”,则它不会在回发中运行!实际上,它不应该在回发中运行。列表应在第一页加载时更新,然后保留值。。。在任何情况下,即使我关闭“if not page.ispostback”,它也不起作用。