1

4 回目の繰り返しで rpt.ItemDataBound 関数を終了したいのですが、完了したら:

 Protected Sub rptCol_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles rptCol.ItemDataBound
        If Not e.Item.ItemType = ListItemType.AlternatingItem AndAlso Not e.Item.ItemType = ListItemType.Item Then Exit Sub
        If e.Item.ItemIndex = 4 Then
            Exit Sub
        End If

..

うまくいきませんでした。彼はこの繰り返しをスキップしました。

何か案は ?ありがとう

4

4 に答える 4

2

@Marcusが言ったように、すべての行に対して呼び出されるため、反復は続行されます。

別のアプローチを試してください。リピーターにバインドする前に、データソースを変更してください。このようなもの:

//I am assuming your datasource is a List, but this works for a datatable, etc
List<[YOUR CLASS]> datasource = MethodThatGetsYourSource();
rptCol.DataSource = datasource.Take(4);
rptCol.DataBind();
于 2013-03-01T15:51:57.703 に答える
1
Private Sub ForceStopAfterFirstBind(sender As Object, e As RepeaterItemEventArgs)
    If e.Item.ItemIndex > 3 Then
        e.Item.Controls.Clear()
    End If
End Sub

このように呼びます:

ForceStopAfterFirstBind(sender, e)
于 2014-04-17T13:46:11.970 に答える
0

itemCreadedOnDatabound イベントを試す必要があると思います

于 2013-03-01T15:14:14.180 に答える
0

行ごとにイベント ハンドラーが引き続き呼び出されるため、反復は続行されます。特定の行の後のロジックをスキップしたい場合は、次のようにすることができます。

Protected Sub rptCol_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles rptCol.ItemDataBound
    If Not e.Item.ItemType = ListItemType.AlternatingItem AndAlso Not e.Item.ItemType = ListItemType.Item Then Exit Sub
    If e.Item.ItemIndex > 3 Then
        Exit Sub
    End If
 .....
End Sub
于 2013-03-01T15:26:51.697 に答える