如何传递整个ListView行并在外部函数中使用它?

时间:2010-07-21 14:48:53

标签: c# asp.net vb.net

ASP.NET应用程序,VB或C#并不重要。

我有Listview数据绑定到数据集,每行约20项。我有一个函数,它在每个ItemTemplate外观上执行,从Eval(“something”)获得大约10个参数。所以基本上一个函数从10个参数构建和映像。 不是将10 Eval(“something”)传递给函数,而是可以传递整行以及如何在函数内部使用这一行,因为它不是简单的DataRow或ListView行,我可以作为项目数组(datacolumns)访问

我这样做的原因是因为功能看起来很难看,每次我需要更改它时我需要处理几十个项目。

由于

2 个答案:

答案 0 :(得分:0)

如果ListView绑定到数据集,则应根据所需的行号从数据集中获取行。

dim rowNumber as Integer = yourDesiredRowNumber  currentDataSet.Tables(tableNumber).Rows(ROWNUMBER)

答案 1 :(得分:0)

使用“ItemDataBound”事件。在数据绑定期间,它会为列表中的每一行触发。您可以获取每行的DataRowView,然后根据需要使用ItemTemplate中的控件。在这个例子中,我获取DataItem并将其数据应用于Textbox控件。

Private Sub ListView1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.ListViewItemEventArgs) Handles ListView1.ItemDataBound
    If e.Item.ItemType <> ListViewItemType.DataItem Then Exit Sub

    Dim dr = DirectCast(e.Item.DataItem, Data.DataRowView)
    Dim Textbox1 = DirectCast(e.Item.FindControl("Textbox1"), Web.UI.WebControls.TextBox)

    Textbox1.Text = dr("MyColumnName")
End Sub