Когда вы используете функцию $ .each (), вы можете передать ей несколько аргументов. Например:
$(this).find("li").each(function(i, o){ });
Где i - индекс, а o - сам объект (в вашем случае, элемент li ). Итак, вы можете попробовать сделать это:
$(this).find("li.thumbnail" + i).css('background-image', 'url(' + $(this).find('.item:nth-child('+ (i - 1) + ') img').attr('src') + ')');
NavigateUrl="~/Details.aspx?ID=<%# Eval("productID") %>"
должен работать...
... но это не делает!
Самый изящный путь должен быть:
<asp:HyperLink ID="lnkDetails" runat="server" NavigateUrl='<%# Eval("ProductID", "~/Details.aspx?ID={0}") %>'>See Details</asp:HyperLink>