【发布时间】:2014-06-13 16:13:11
【问题描述】:
我正在尝试将一行数据添加到五列列表视图中。我在将字符串数组传递到ListViewItem 时遇到问题,因为它不接受数据数组。我没有使用这些视图的经验,所以如果有人能指出我做错了什么,那就太好了。
我的列表视图是lvChanges
我有以下设置,我当前的实现是否正确使用 ListView?
第 1 到 4 列:字符串
第 5 列:LinkButton, CommandName="ApproveChange" - 在代码中处理,但是,我不确定如何为 CommandArgument="?" 中的行传递标识符。我见过很多使用<%# Eval('someKey') %> 的示例它是如何工作的? 我怎样才能传递密钥?我需要只读属性吗?只要我的页面后面的代码有对象,属性可以直接“评估”吗?
我正在尝试添加有错误的项目:“'一维字符串数组'类型的值无法转换为'System.Web.UI.WebControls.ListViewItemType”
For i As Integer = 0 To addressList.Count
Dim item As ListViewItem
Dim data(5) As String
data(0) = "Adress Change"
data(1) = stakeholderList(i).ToString
data(2) = stakeholderList(i).Address.ToString
data(3) = addressList(i).ToString
data(4) = "need the link button here!"
item = New ListViewItem(data) ' <-- Error
lvChanges.Items.Add(item)
Next
上面的数据,应该进入ItemTemplate中的五个<td>标签,如下
<asp:ListView ID="lvChanges" runat="server">
<LayoutTemplate>
<table cellpadding="2" width="640px" border="1" ID="tbl1" runat="server">
<tr id="Tr1" runat="server" style="background-color: #dfdbdf">
<th runat="server"><%= Type %></th>
<th runat="server"><%= Requester %></th>
<th runat="server"><%= OldAddress%></th>
<th runat="server"><%= NewAddress%></th>
<th runat="server"><%= Decision%></th>
</tr>
<tr runat="server" id="itemPlaceholder" />
</table>
</LayoutTemplate>
<ItemTemplate>
<tr runat="server" >
<td></td>
<td></td>
<td></td>
<td>
<asp:LinkButton runat="server"
ID="btnApprove"
Text="Approve"
CommandName="ApproveChange"
CommandArgument='<%# Eval("?") %>'/>
</td>
</tr>
</ItemTemplate>
</asp:ListView>
对于CommandArgument,如何才能让该行知道涉众ID,以完成这块的功能。
【问题讨论】:
-
item = New ListViewItem(data)- 传递字符串数组是 WinForms 的正确语法。 Web 控件不同 -
@Plutonix 我明白了,我什至无法创建一个单数
ListViewItem并将字符串传递给它。它只接受DataItem, EmptyItem, or InsertItem
标签: vb.net listview listviewitem itemtemplate