在没有选择的情况下读取列表视图中的数据

时间:2014-01-29 19:19:18

标签: asp.net vb.net listview

我有一个在更新面板上运行的计时器,其中Listview显示页面大小为1.计时器在循环浏览许多记录时递增数据寻呼机。

在Protected Sub timer_Tick Event中,我想从ListView页面读取一些值。有一个简单的方法吗?

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

像......那样的东西。

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

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

<ItemTemplate>
<tr>
   <td>Position C:</td>
   <td><asp:Label ID="Label50" runat="server" Text='<%# Eval "Pos_C") %>' />
   </td>                        
</tr>                                        
<tr>
   <td>Position D</td>
   <td><asp:Label ID="Label51" runat="server" Text='<%# Eval("Pos_D") %>' />
   </td>
</tr> 
</ItemTemplate>

itemtemplate的缩写布局。

1 个答案:

答案 0 :(得分:0)

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

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

效果很好。