When I use datalist , here's the code :
<asp:datalist id="DataListProduct" runat="server" repeatcolumns="6" repeatdirection="Horizontal" xmlns:asp="#unknown">
DataKeyField="product_id">
<itemtemplate>
<div style="padding: 10px; text-align: center;">
<a href="viewmobiledetails.aspx?x=<%# Eval(" product_id=")%>">
<asp:image id="ImageImg" runat="server" height="100px" imageurl="<%# Eval("image") %>">
Width="100px" />
<h5>
<asp:label id="LabelName" runat="server" text="<%# Eval("name") %>"></asp:label>
</h5>
Rp.<asp:label id="LabelPrice" runat="server" text="<%# Eval("price") %>"></asp:label>
</asp:image></a>
</div>
</itemtemplate>
</asp:datalist>
I use hyperlink to redirect user to detail page. Use querystring to transfer the id or encrypt it to secure it.