我正在用c#做一个asp.net Web应用程序。我需要一个对齐方式,如下所示:
这种对齐我想使用转发器控制。我使用了以下内容:
aspx页面:
<table cellspacing="0" cellpadding="0" border="0" width="80%" align="center">
<tr>
<td>
</td>
<asp:Repeater ID="rptroutebind" runat="server">
<ItemTemplate>
<td> <asp:Label ID="lblRouteName" runat="server" Text='<%# Eval("ROUTENAME") %>' Width="100"></asp:Label>
</td>
</ItemTemplate>
</asp:Repeater>
</tr>
<asp:Repeater ID="rptbindoutlet" runat="server">
<ItemTemplate>
<tr>
<td> <asp:Label ID="lblOutName" runat="server" Text='<%# Eval("RONAME") %>' Width="100"></asp:Label>
</td>
</tr>
<tr>
<td style="height: 10px">
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
然后我没有复选框得到以下对齐方式。任何人都可以告诉我们如何放置这些复选框
编辑:我试过这个
cs页面:
protected void rptbindoutlet_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
CheckBox chk;
foreach (RepeaterItem item in rptbindoutlet.Items)
{
for (int i = 1; i <= chkno; i++)
{
chk = new CheckBox();
chk.ID = "check" + i;
rptbindoutlet.Controls.Add(chk);
}
}
}
我收到复选框但没有正确对齐。我是这样的:
编辑1:
protected void rptbindoutlet_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
CheckBox chk;
foreach (RepeaterItem item in rptbindoutlet.Items)
{
TableRow tr = new TableRow();
for (int i = 1; i <= chkno; i++)
{
TableCell tc = new TableCell();
chk = new CheckBox();
chk.ID = "check" + i;
tc.Controls.Add(chk);
}
rptbindoutlet.Controls.Add(tr);
}
}
这给出了
答案 0 :(得分:1)
根据您的代码,您使用c#代码而不是表结构添加了新的ItemTemplate
。您在父级中使用了一个表,而在ItemDataBound
事件中,您只是通过新的ItemTemplate
重叠结构。所以我建议你生成一个TableRow和TableCell,并在这个TableCell中根据你的父表结构在运行时添加新的CheckBox ....