(1)把DataList的RepeatLayout属性设为Flow,这样DataList就不自动生成表格了;
(2)把DataList的RepeatLayout属性设为Table,这样DataList就自动生成表格了;
(3)DataList的总是自动生成<span><br /></span>,把RepeatDirection属性改成Horizontal,这样就不自动生成了;
(4)DataList的属性RepeatColumns,设置每行显示的数目。
eg:
<%@ Control Language="C#" AutoEventWireup="true" Inherits="SJTSoft.JSTMBS.Web.PublicService.UserControls.VehicleBusinessScopeCtrl" %>
<asp:DataList ID="dlBusiScope" runat="server" RepeatColumns="4" RepeatDirection="Horizontal" RepeatLayout="Table">
<HeaderTemplate>
<table cellspacing="0" cellpadding="0" border="0">
<tr>
</HeaderTemplate>
<ItemTemplate>
<td class="input_RightTd" style="white-space:nowrap;">
<asp:CheckBox ID="chkBusiScope" runat="server" Text='<%# Eval("BusiScopeName") %>' />
<br />品名:<asp:TextBox ID="txtProductName" runat="server" Width="180px"></asp:TextBox>
<asp:HiddenField ID="hfBusiScopeCode" runat="server" Value='<%# Eval("BusiScopeCode") %>' />
</td>
</ItemTemplate>
<FooterTemplate>
</tr>
</table>
</FooterTemplate>
</asp:DataList>
总结:因为少写了RepeatLayout="Table"这个属性,导致我要的效果总是达不到,而我心理也总有感觉是少了一个什么而已,用火狐看代码,发现应该为table的标签变成了span,导致RepeatColumns="4" 这个属性也失效了。牢记!!!