Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net dropdownlist在页面回发时被清除_Asp.net_Vb.net - Fatal编程技术网

Asp.net 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

我的页面上有一个绑定到SqlDataSource的FormView。FormView上的一个控件是DropDownList,它在Page_Load上填充(使用特定文件夹中的文件名列表填充)

第一次加载页面时,一切都很顺利。我可以查看文件列表,选择一个,点击“保存”按钮后,在数据库中存储正确的文件名。但是,当页面在回发后刷新时,DropDownList为空

页面加载事件的代码隐藏:

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”,它也不起作用。