使用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 ????
答案 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>