如何创建和填充3列ListView?

时间:2012-03-30 21:44:52

标签: vb.net listview visual-web-developer-2010

我需要使用来自另一个函数的3个字符串创建和填充ListView。我还希望能够选择多个数据来在运行时更改它们的值(可以使用ListView吗?)。

我已经在网上查看了相关信息,但我似乎无法找到任何信息。如果有人能给我一些关于最佳方法的见解,我会非常感激。

我也见过GridView上的一些东西。这个应用程序会更好吗?

1 个答案:

答案 0 :(得分:1)

我必须承认,我不知道你究竟在问什么。但是,是的,你可以将3个字符串绑定到来自“另一个函数”的ListView:)

您可以处理ItemDataBound来更改ListItems中的值:

<asp:ListView runat="server" ID="ListView1" >
    <LayoutTemplate>
        <table>
            <thead>
                <tr>
                    <th>
                        A String
                    </th>
                </tr>
            </thead>
            <tbody>
                <asp:PlaceHolder runat="server" ID="itemPlaceholder" />
            </tbody>
        </table>
    </LayoutTemplate>
    <ItemTemplate>
        <tr>
            <td>
               <asp:Label ID="LblString" Text="<%# Container.DataItem %>" runat="server"></asp:Label>
            </td>
        </tr>
    </ItemTemplate>
</asp:ListView>

页面的代码隐藏:

Public Class ListView
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not IsPostBack Then
            Me.ListView1.DataSource = OtherFuntion()
            Me.ListView1.DataBind()
        End If
    End Sub

    Private Function OtherFuntion() As IEnumerable(Of String)
        Return {"String 1", "String 2", "String 3"}
    End Function

    Private Sub ListView1_ItemDataBound(sender As Object, e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound
        If e.Item.ItemType = ListViewItemType.DataItem Then
            Dim lblString = DirectCast(e.Item.FindControl("LblString"), Label)
            lblString.Text = New String(lblString.Text.Reverse.ToArray)
        End If
    End Sub

End Class

这简单地反转所有字符串。