2015-02-20 5 views
9

Ретранслятор запускает событие, когда элемент создаетсяПолучить ClientId управления в Repeater

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

А можно поймать и изменить управление на этой одной строки данных.

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

Теперь проблема в том, что для любого JavaScript необходимо определить правильный идентификатор клиента. Но элемент управления не содержит идентификатор клиента, а только строку lblShipmentDetails.

Что MSDN говорит:

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

или CodeProject:

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

Но как поймать правильный ClientID от повторителя, чтобы использовать его в JavaScript?

ClientDi

Источник генерируется с автоматическим идентификатором. Как получить этот идентификатор? Auto Id

ответ

4

DataBound Событие. Чтобы получить идентификатор элемента управления, повторителю необходимо сначала привязать данные. Затем просто запросите ID, как в событии 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