需要在ASP.net Datalist的单个记录中识别特定元素的ID

时间:2014-03-14 22:50:06

标签: javascript asp.net vb.net

使用VB.net。 我有一个带有asp.net datalist的网页,在datalist中有一个表。使用单击图像(位于单个数据列表记录中),我想在同一个数据列表记录中隐藏表中的一行。我正在使用带有javascript onclick的图像和数据列表' ItemDataBound来实现这一目标。无法让它发挥作用。没有任何事情发生。

Protected Sub DataList1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataListItemEventArgs) Handles DataList1.ItemDataBound
Dim imgDetails As HtmlImage = CType(e.Item.FindControl("imgDetails"), HtmlImage)
Dim detailsTR As HtmlTableRow = CType(e.Item.FindControl("detailsTR"), HtmlTableRow)
imgDetails.Attributes.Add("onclick", "javascript:document.getElementById('" & detailsTR.ID & "').style.display = 'none';")

End Sub

我认为问题在于数据库中的ID或者我的javascript是关闭的(尽管我可以将其全部用于在数据列表之外工作)。也许有一种方法(ClientID ??)为datalist的每条记录中的表行设置一个唯一的ID ????

1 个答案:

答案 0 :(得分:0)

您可以像这样访问控件的ClientID ......

CType(e.Item.FindControl("imgDetails"), HtmlImage).ClientID

或者,在您的数据列表中,您可以使用:<%#Container.ItemIndex%>为您的行提供唯一索引,然后您可以在后面的代码中访问它。

<asp:datalist id="DataList1" runat="server">
    <itemtemplate>
        <%#Container.ItemIndex+1 %>
    </itemtemplate>
</asp:datalist>