2015-02-20 12 views
9

Repeater wyzwala zdarzenie, gdy element jest tworzonyGet ClientID kontroli w Repeater

Protected Sub Repeater1_ItemCreated(sender As Object, e As RepeaterItemEventArgs) Handles Repeater1.ItemCreated 

I to jest możliwe, aby złapać i zmodyfikować kontrolę nad tym jednym wierszu danych.

Dim lnk As HyperLink = CType(e.Item.FindControl("lblShipmentDetails"), HyperLink) 

Problem polega na tym, że w przypadku dowolnego skryptu JavaScript konieczne jest określenie poprawnego identyfikatora klienta. Ale kontrola nie zawiera identyfikatora klienta, tylko ciąg znaków lblShipmentDetails.

Co MSDN mówi:

https://msdn.microsoft.com/en-us/library/system.web.ui.control.clientidmode%28v=vs.110%29.aspx

https://msdn.microsoft.com/en-us/library/1d04y8ss%28v=vs.140%29.aspx

lub CodeProject:

http://www.codeproject.com/Articles/108887/Client-Ids-Generation-with-ASP-NET

Ale jak złapać właściwą ClientID od Repeater do używania go w JavaScript?

ClientDi

źródłowy jest generowany z Auto-ID. Jak zdobyć ten identyfikator? Auto Id

Odpowiedz

4

Użyj zdarzenia DataBound. Aby uzyskać identyfikator kontrolny, wzmacniacz musi najpierw powiązać dane. Następnie zapytaj o identyfikator, tak jak w przypadku Created.

Protected Sub Repeater1_ItemDataBound(sender As Object, e As RepeaterItemEventArgs) Handles Repeater1.ItemDataBound 
    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then 
     Dim btn As Button = CType(e.Item.FindControl("btnOrderTrackingConfirmMove"), Button) 
     If btn IsNot Nothing Then 
      Dim RealId As String = btn.Page.ClientScript.GetPostBackEventReference(btn, String.Empty).ToString 

     End If 
    End If 
End Sub 
Powiązane problemy