中继器控制和复选框对齐

时间:2012-05-08 09:39:22

标签: c#

我正在用c#做一个asp.net Web应用程序。我需要一个对齐方式,如下所示: enter image description here

这种对齐我想使用转发器控制。我使用了以下内容:

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);
                }
            }
        }

我收到复选框但没有正确对齐。我是这样的: enter image description here

编辑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);
            }
        }

这给出了

enter image description here

1 个答案:

答案 0 :(得分:1)

根据您的代码,您使用c#代码而不是表结构添加了新的ItemTemplate。您在父级中使用了一个表,而在ItemDataBound事件中,您只是通过新的ItemTemplate重叠结构。所以我建议你生成一个TableRow和TableCell,并在这个TableCell中根据你的父表结构在运行时添加新的CheckBox ....