Toon posts:

[ASP.net] in Repeater.ItemCreated button een id meegeven

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil in de Repeater.ItemCreated event een linkbutton zijn NavigateUrl toewijzen.

Daar heb ik nu de volgende code voor:

code:
1
2
3
4
5
6
7
8
9
Private Sub rptBelBestanden_ItemCreated(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs) Handles rptBelBestanden.ItemCreated 

        Dim lnkOpenBB As HyperLink = e.Item.FindControl("lnkOpenBB")
        Dim lnkBewerkBB As HyperLink = e.Item.FindControl("lnkBewerkBB")
        Dim lnkDeleteBB As HyperLink = e.Item.FindControl("lnkDeletBB")
        lnkOpenBB.NavigateUrl = "BelBestandLedenGrid.aspx?BelBestandID=" & NUMMER
        lnkOpenBB.Target = "Content" 

    End Sub


Maar nu wil ik dus het ID van dat Item op de plek van NUMMER invullen.
Hoe kan ik dat ID bereiken? Het werkt niet met: DataBinder.Eval(Container.DataItem, "ItemID")
Dus dan weet ik niet hoe ik anders het ID kan achterhalen

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:38
Je kan er aan via het RepeaterItemEventArgs object dat je meekrijgt in die event-handler:

code:
1
e.Item.DataItem

Dat DataItem zal je wel nog ff moeten casten naar het soort class waarmee je gebinded hebt; als je dus met een DataTAble gebinded hebt, zal je dat DataItem naar een DataRow moeten casten.

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op woensdag 12 januari 2005 @ 18:40:
Je kan er aan via het RepeaterItemEventArgs object dat je meekrijgt in die event-handler:

code:
1
e.Item.DataItem

Dat DataItem zal je wel nog ff moeten casten naar het soort class waarmee je gebinded hebt; als je dus met een DataTAble gebinded hebt, zal je dat DataItem naar een DataRow moeten casten.
ok me = n00b dus dat snap ik niet helemaal...casten?

  • whoami
  • Registratie: December 2000
  • Laatst online: 23:38
Ja, casten.

bv:
code:
1
DataRow dr = (DataRow)e.Item.DataItem;

of
code:
1
DataRow dr = e.Item.DataItem as DataRow

https://fgheysels.github.io/


Verwijderd

Topicstarter
thx!

ik heb nu het volgende gedaan:

Dim dvDataRowView As DataRowView = e.Item.DataItem
Dim ItemID As Integer = dvDataRowView.Item(0)


en dat werkt :P

  • TlighT
  • Registratie: Mei 2000
  • Laatst online: 22-03 10:40
Verwijderd schreef op woensdag 12 januari 2005 @ 19:48:
thx!

ik heb nu het volgende gedaan:

Dim dvDataRowView As DataRowView = e.Item.DataItem
Dim ItemID As Integer = dvDataRowView.Item(0)
Je kunt volgens mij beter dit doen:
code:
1
2
Dim dvDataRowView As DataRowView = CType(e.Item.DataItem, DataRowView)
Dim ItemID As Integer = CType(dvDataRowView.Item(0), Integer)

Dan worden namelijk de casts al compiletime ge-evalueerd en niet pas runtime en dat scheelt uitvoertijd. De meeste mensen raden aan altijd Option Strict On in je code te zetten, zodat de VB.NET compiler dit soort impliciete conversies niet meer toestaat.

Verwijderd

Topicstarter
TlighT schreef op donderdag 13 januari 2005 @ 10:23:
[...]

Je kunt volgens mij beter dit doen:
code:
1
2
Dim dvDataRowView As DataRowView = CType(e.Item.DataItem, DataRowView)
Dim ItemID As Integer = CType(dvDataRowView.Item(0), Integer)

Dan worden namelijk de casts al compiletime ge-evalueerd en niet pas runtime en dat scheelt uitvoertijd. De meeste mensen raden aan altijd Option Strict On in je code te zetten, zodat de VB.NET compiler dit soort impliciete conversies niet meer toestaat.
Ah ok, dan zal ik dat eens doen! Bedankt voor de tip! Ga ik zker vaker gebruiken zo!
Pagina: 1