我需要使用来自另一个函数的3个字符串创建和填充ListView。我还希望能够选择多个数据来在运行时更改它们的值(可以使用ListView吗?)。
我已经在网上查看了相关信息,但我似乎无法找到任何信息。如果有人能给我一些关于最佳方法的见解,我会非常感激。
我也见过GridView上的一些东西。这个应用程序会更好吗?
答案 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
这简单地反转所有字符串。