这是我第一次尝试使用listviews,而且我花了一天的时间在墙上试图让它成功。我创建了一个列表视图,我试图填充来自Oracle DB的数据。我试图使用datareader来填充列表视图,但我很难让它工作。对于listview表单控件有很多实现这一点,但对于Web控件来说并不多。任何帮助将不胜感激。
我能够得到的最远的是:
While reader.Read
Dim obj As New ListViewDataItem((reader(0)), (reader(1)))
lsvGeneratedForms.Items.Add(obj)
End While
但是这只允许我读取2个对象(我需要输入4个)并且我遇到类型转换错误,因为我的DB只包含字符串& date数据类型。
列表视图的标记:
<div class="GeneratedFormsDivStyle" style="height:300px; overflow:scroll">
<asp:ListView runat="server" ID="lsvGeneratedForms">
<LayoutTemplate>
<table id="tblFormList" border="0" cellpadding="0" cellspacing="0">
<tr style="background-color:#ccdaeb">
<th align="left">
<asp:Label ID="hdrAgreeNo" runat="server" Text="Agreement No"/> </th>
<th align="left">
<asp:Label ID="hdrGenDate" runat="server" Text="Date Generated"/></th>
<th align="left">
<asp:Label ID="hdrLEAcct" runat="server" Text="Legal Entity Account"/></th>
<th align="left">
<asp:Label ID="hdrStatus" runat="server" Text="Status"/></th>
</tr>
<tr id="itemPlaceholder" runat="server"></tr>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Label runat="server" ID="lblAgreeNo"><%#Eval("AGREEMENT_NUM")%></asp:Label></td>
<td>
<asp:Label runat="server" ID="lblGenDate"><%#Eval("GEN_DATE")%></asp:Label></td>
<td>
<asp:Label runat="server" ID="lblLEAcct"><%#Eval("LE_ACCOUNT")%></asp:Label></td>
<td>
<asp:Label runat="server" ID="lblStatus"><%#Eval("STATUS")%></asp:Label></td>
</tr>
</ItemTemplate>
</asp:ListView>
</div>
答案 0 :(得分:0)
为了说明我的例子,创建一个类:
Public Class MyItem
Public Property AGREEMENT_NUM As String
Public Property GEN_DATE As String
Public Property LE_ACCOUNT As String
Public Property STATUS As String
End Class
这与您在<ItemTemplate>
中填充的字段相匹配。
接下来,您可以将读者的结果映射到班级:
Dim myItems As List(Of MyDataItem) = New List(Of MyDataItem)()
While (reader.Read())
Dim newItem As New MyDataItem With { .AGREEMENT_NUM = reader(0).ToString(), .GEN_DATE = reader(1).ToString(), .LE_ACCOUNT = reader(2).ToString(), .STATUS = reader(2).ToString() }
myItems.Add(newItem)
End While
然后你可以绑定列表:
MyListView.DataSource = myItems
MyListView.DataBind()
以上代码就是一个示例 - 您需要根据代码进行相应调整。重要的是确保您绑定的对象集合具有标记中使用的相应字段名称。