2010-07-21 5 views
0

ASP.NET 응용 프로그램, VB 또는 C#은 중요하지 않습니다.전체 ListView 행을 전달하고 외부 함수에서 사용하는 방법은 무엇입니까?

나는 행 당 약 20 개의 항목으로 Dataset에 데이터 바인딩되는 Listview를 가지고 있습니다. 각 ItemTemplate 모양을 실행하고 Eval ("something")에서 약 10 개의 매개 변수를 가져 오는 함수가 있습니다. 기본적으로 하나의 함수는 10 개의 매개 변수를 기반으로 이미지를 만들고 이미지합니다. 함수에 Eval ("something")을 전달하는 대신 함수 전체에 행을 전달할 수 있으며 함수의 내부에서이 행을 사용하는 것이 가능합니다. DataRow 또는 ListView 행이 아니므로 항목의 배열 (datacolumns).

이유는 기능이 추악 해 보이고 변경할 때마다 수십 개의 항목을 처리해야하기 때문입니다.

감사

답변

0

가있는 ListView가 데이터 집합에 바인딩되어있는 경우, 당신은 당신의 원하는 행 수를 기준으로 데이터 집합에서 행을 잡아해야합니다. 같은

희미한 ROWNUMBER 정수 = yourDesiredRowNumber currentDataSet.Tables (tableNumber) .Rows (ROWNUMBER)

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 
관련 문제