ASP.NET - 在页面加载上加载LIstBox控件

时间:2015-11-13 22:33:40

标签: asp.net vb.net listbox

我有一个带有GridView控件的页面。

在Gridview中有一个包含ListBox控件的TemplateField:

<asp:TemplateField HeaderText="Uploaded Files">
    <ItemTemplate>
        <asp:ListBox ID="ListBoxFiles" runat="server"></asp:ListBox>
    </ItemTemplate>
</asp:TemplateField>

我需要在页面加载时使用服务器上文件夹中的文件列表填充此ListBox。我对如何做到这一点感到茫然。

我可以用标签实现类似的效果:

<asp:TemplateField HeaderText="Uploaded Files">
    <ItemTemplate>
        <asp:ListBox ID="ListBoxFiles" runat="server"></asp:ListBox>
        <asp:Label ID="LabelFiles" runat="server" Text='<%#GetFiles(Eval("DocDescription")) %>' ></asp:Label>
    </ItemTemplate>
</asp:TemplateField>

后面的代码

Public Function GetFiles(param As String)
    GetFiles = ""
    Try
        Dim filePaths() As String = Directory.GetFiles(Server.MapPath("~/Uploads/") & Session("LastFirst") & " - " & Session("StudentUID") & "/" & param & "/")
        For Each filePath As String In filePaths
            GetFiles = GetFiles & "<br/>" & Path.GetFileName(filePath)
        Next
        GetFiles = Right(GetFiles, Len(GetFiles) - 5)
    Catch
    End Try
End Function

但我希望用户能够选择要删除的文件。

如何在页面加载时填充ListBox?

1 个答案:

答案 0 :(得分:0)

你可以这样做(注意:从C#转换):

Protected Sub Page_Load(sender As Object, e As EventArgs)
    For Each Row As GridViewRow In GridView1.Rows
        If Row.RowType = DataControlRowType.DataRow Then
            Dim ListBoxFiles As ListBox = TryCast(Row.FindControl("ListBoxFiles"), ListBox)
            ListBoxFiles.Items.Add("aaa")
            ListBoxFiles.Items.Add("bbb")
            ListBoxFiles.Items.Add("ccc")
        End If
    Next
End Sub