虽然我同意那些敦促你尽可能将查询分成多行的观点,但有一种方法可以做你想做的事。虽然您没有提到任何需要使用“合适的控件”来编辑行,但这个解决方案可以 - 通过一些工作 - 允许您这样做。
使用 aDataList
甚至 aRepeater
并在您的ItemTemplate
:
<asp:DataList runat="server" RepeatLayout="Table" ExtractTemplateRows="true">
<HeaderTemplate>
<asp:Table runat="server">
<asp:TableRow runat="server">
<asp:TableCell runat="server">
Name
</asp:TableCell>
<!--- etc -->
</asp:TableRow>
</asp:Table>
</HeaderTemplate>
<ItemTemplate>
<asp:Table runat="server">
<asp:TableRow runat="server">
<asp:TableCell><asp:Label id="lblName1" runat="server" /></asp:TableCell>
<!-- etc. -->
</asp:TableRow>
<asp:TableRow runat="server">
<asp:TableCell><asp:Label id="lblName2" runat="server" /></asp:TableCell>
<!-- etc. -->
</asp:TableRow>
<asp:TableRow runat="server">
<asp:TableCell><asp:Label id="lblName3" runat="server" /></asp:TableCell>
<!-- etc. -->
</asp:TableRow>
</asp:Table>
</ItemTemplate>
</asp:DataList>
在运行时,表行将从内部表中提取并合并到一个表中。您甚至可以设置命令按钮(可能在具有 rowspan="3" 属性的一行中),这样您就可以拥有类似于三行网格的外观和工作方式。