在 Repeater 中获取控件的 ClientId

9

当项被创建时,重复器会触发事件。

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

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

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

现在的问题是,对于任何JavaScript,都需要确定正确的客户端ID。但是控件没有保存客户端ID,只有“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

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

ClientDi

源代码是由自动生成的id生成的。如何获取此id? 自动生成的ID

1个回答

4

使用 DataBound 事件。要获取控件 ID,重复器需要先绑定数据。然后在 Created 事件中请求 ID。

    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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接