Use a PlaceHolder around your control and set the PlaceHolder's visibility based on the content of the control it holds. If the control's data is Null the PlaceHolder will be hidden and won't even take up space.
<asp:PlaceHolder ID="PlaceHolder1" runat="server" Visible='<%# (Eval("YourItem")) %>'><asp:Label ID="YourItem" runat="server" Text="YourItem" Visible='<%# (Eval("YourItem")) %>' ></asp:Label></asp:PlaceHolder>
You might need a <br /> just before the closing tag to make sure that the data above and below don't end up next to each other. If you put it outside, it will always be there and you could potentially end up with 2 or 3 breaks between items if there were a few Null items being hidden.