У меня была похожая проблема. В итоге мне пришлось разбить связанное изображение и текст на их собственный div и стилизовать их соответственно:
<ItemTemplate>
<div class="outer">
<div class="top">
<asp:HyperLink id="hlImage" runat="server" CssClass="Font7">
</asp:HyperLink>
</div>
<div class="bottom">
<asp:Label id="lbText" runat="server" CssClass="Font7"></asp:Label>
</div>
</div>
</ItemTemplate>
Я уверен, что есть более чистые способы сделать это, и это всего лишь пример того, как может выглядеть вывод HTML. Это просто «не с руки», но если вы вставите пустой htm-файл, он будет отображаться.
<div style="width: 100px;">
<!-- first row -->
<div style="float:left; width:50px; border: 2px solid black;">
<div>
<a href="#">link</a>
</div>
<div style="height:50px; background-color:Aqua; vertical-align:bottom;">
<span>text</span>
</div>
</div>
<div style="float:left; width:50px; border: 2px solid black;">
<div>
<a href="#">link</a>
</div>
<div style="background-color: Aqua;">
<span style="height:50px; vertical-align:bottom;">text</span>
</div>
</div>
<!-- second row -->
<div style="float:left; width:50px; border: 2px solid black;">
<div>
<a href="#">link</a>
</div>
<div style="height:50px; background-color:Aqua; vertical-align:bottom;">
<span>text</span>
</div>
</div>
</div>
Скорее всего, вы можете использовать RepeatLayout = "Flow" ItemStyle = "float: left;" в вашем контроле DataList, чтобы помочь, а.