在Repeater中获取ClientId控制权

Nas*_*aer 9 html javascript asp.net

创建Item时,转发器将触发事件

 Protected Sub Repeater1_ItemCreated(sender As Object, e As RepeaterItemEventArgs) Handles Repeater1.ItemCreated
Run Code Online (Sandbox Code Playgroud)

并且可以捕获和修改此单个数据行上的控件.

Dim lnk As HyperLink = CType(e.Item.FindControl("lblShipmentDetails"), HyperLink)
Run Code Online (Sandbox Code Playgroud)

现在的问题是,对于任何JavaScript,都需要确定正确的客户端ID.但是控件不包含客户端ID,只包含lblShipmentDetailsString.

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

但是如何从Repeater中捕获正确的ClientID以在JavaScript中使用它?

ClientDi

源是使用auto-id生成的.如何获得此ID? 自动ID

Nas*_*aer 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
Run Code Online (Sandbox Code Playgroud)