关于asp.net:在没有选择的情况下读取列表视图中的数据

Reading data in a listview without a selection

我在更新面板上运行了一个计时器,其列表视图显示页面大小为 1。计时器在数据寻呼机循环通过许多记录时递增。

在受保护的 Sub timer_Tick 事件中,我想从 ListView 页面中读取一些值。有没有简单的方法可以做到这一点?

数据当前通过 SQLDataSource 绑定,但在其他页面开发正在进行时这是临时的。所以我不能依赖该数据集来获取所需的信息。

类似....

1
2
val1 = listviewName.SelectedItems(0).SubItems(3).Text
val2 = listviewName.SelectedItems(0).SubItems(4).Text

一个问题是不会选择记录。 Listview 在 ItemTemplate 中显示数据集。

1
2
3
4
5
6
7
8
9
10
11
12
<ItemTemplate>
<tr>
   <td>Position C:</td>
   <td>' />
   </td>                        
</tr>                                        
<tr>
   <td>Position D</td>
   <td>' />
   </td>
</tr>
</ItemTemplate>

itemtemplate 的缩写布局。


对于任何感兴趣的人,我用下面的代码解决了上述问题....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Protected Sub ListView1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound

    'Get the item object.
    Dim dataItem As ListViewDataItem = CType(e.Item, ListViewDataItem)
    Dim item As ListViewItem = e.Item

    ' Get the Label control in the item.      
    Dim myVal1Lbl As Label = CType(item.FindControl("Label50"), Label)
    Dim myVal2Lbl As Label = CType(item.FindControl("Label51"), Label)

    Dim myVal1 As String = myVal1Lbl.Text
    Dim myVal2 As String = myVal2Lbl.Text

End Sub

效果很好。