在嵌套转发器中对齐复选框

时间:2013-12-06 14:17:26

标签: c# asp.net

我有一个嵌套的转发器控件,我试图在几个空格中列出嵌套转发器下面的项目,包括与之关联的复选框。但似乎每隔一行都是一个没有标签的复选框,有人可以轻松一点吗?

<asp:Repeater ID="parentRepeater" runat="server">
    <ItemTemplate>
        <br />                  
        <b>
            <input type="checkbox" id="chk_ParentProgram"  name="chk_ParentProgram" runat="server"
                value='<%# ((programsRepeat)Container.DataItem).Level == 1 ? ((programsRepeat)Container.DataItem).ProgramID.ToString() : "" %> '
                       />
            <label for="chk_ParentProgram">
              <%# ((programsRepeat)Container.DataItem).Level == 1 ? ((programsRepeat)Container.DataItem).ProgramName : "" %> 
                </label>        
        </b>
        <asp:Repeater>
            <ItemTemplate>
                 <br/>&nbsp;&nbsp;&nbsp;
                     <input type="checkbox" id="chk_ChildProgram" name="chk_Child" runat="server"
                    value='<%# ((programsRepeat)Container.DataItem).Level == 2 ? ((programsRepeat)Container.DataItem).ProgramID.ToString() + " from the child repeater" : "" %>'
                         />
                                <label for="chk_ChildProgram">
              <%# ((programsRepeat)Container.DataItem).Level == 2 ? ((programsRepeat)Container.DataItem).ProgramName : "" %> 
                </label>  
           </ItemTemplate>
        </asp:Repeater>
    </ItemTemplate>
</asp:Repeater>

Screenshot for layout

1 个答案:

答案 0 :(得分:0)

问题是你是否有(programsRepeat)Container.DataItem).ProgramID.ToString()的有效值或空标记仍然会显示如下所示的复选框

<input type="checkbox" value="" />

This will render the empty checkbox.

更好地检查值并渲染类似

的复选框
<% if((programsRepeat)Container.DataItem).Level == 2 && 
 ((programsRepeat)Container.DataItem).ProgramID!="")
{
 //not sure about the inline syntax here. 
 //add checkbox code
}
%>

Inline Syntax Reference或检查this