Я пытаюсь добавить строку данных в пятиколоночный список. У меня проблема с передачей массива строк в ListViewItem
, так как он не принимает массив данных. У меня мало опыта использования этих представлений, поэтому, если бы кто-то мог указать, что я делаю неправильно, это было бы здорово.
Мой список lvChanges
У меня есть следующая настройка, правильно ли моя текущая реализация использует ListView?
Столбец с 1 по 4: строка
Столбец 5: LinkButton, CommandName="ApproveChange" — обрабатывается в коде, однако я не знаю, как передать идентификатор строки в CommandArgument="?". Я видел много примеров использования <%# Eval('someKey') %>
Как это работает? Как я могу передать ключ? Нужно ли свойство только для чтения? Пока мой код за страницей имеет объекты, могут ли атрибуты быть напрямую «Eval'd»?
Я пытаюсь добавить элементы с ошибкой в строке: "Значение типа "одномерный массив строк" не может быть преобразовано в "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
Приведенные выше данные должны помещаться в пять тегов <td>
в ItemTemplate
, как показано ниже.
<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
, как это сделать, чтобы эта строка знала идентификатор заинтересованного лица, чтобы завершить функциональность этой части.
item = New ListViewItem(data)
- передача массива строк является правильным синтаксисом для WinForms. Веб-управление отличается - person Ňɏssa Pøngjǣrdenlarp   schedule 13.06.2014ListViewItem
и передать в него строку. Он будет принимать толькоDataItem, EmptyItem, or InsertItem
- person GivenPie   schedule 13.06.2014