如果然后在ASP.NET中继器中使用复选框



这是我的ASP中继器代码

<asp:repeater id="filterTable" runat="server">
<HeaderTemplate>
    <br/><br/><br/>
    <div class="table-responsive">
            <table width="100%" cellspacing="0" id="table_odd" class="quickordertable table table-bordered table-striped table-condensed grid-table">
        <tr>
            <th style="width: 80px">
                Details
            </th>
            <th style="width: 80px">
                Filter
            </th>
            <th style="width: 30px">
                Qty
            </th>
            <th style="width: 60px">
                Include In Order
            </th>
        </tr>
</HeaderTemplate>
<ItemTemplate>
    <tr>
        <td><%#Eval("Details")%></td>
        <td><%#Eval("FilterType")%></td>
        <td><%#Eval("Qty")%></td>
        <td><asp:CheckBox ID="orderPartNumber" Checked="true" runat="server"/><asp:HiddenField ID="hiddenPartNumber" Value ='<%#Eval("PartNumber")%>'></td>
    </tr>
</ItemTemplate>
<FooterTemplate>
        </table>
    </div>
    </FooterTemplate>
</asp:Repeater>

我有一个 <%#Eval("GenuineOnly")%>

字段的ASP ItemTemplate

如果字段GenuineOnly包含一个值,(或不是null),则我想显示此代码

<td>GENUINE ONLY</td>

否则我想显示此代码

<td><asp:CheckBox ID="orderPartNumber" runat="server"/><asp:HiddenField ID="hiddenPartNumber" Value ='<%#Eval("PartNumber")%>'></td> 

我已经尝试了多种不同的方式,但似乎无法正确理解语法!任何帮助将不胜感激。

您可以以这种方式实现此目标:

<td>
    <asp:Panel runat="server" Visible='<%#Eval("GenuineOnly").ToString().Length > 0 %>'>
        <asp:CheckBox ID="orderPartNumber" Checked="true" runat="server" />
        <asp:HiddenField runat="server" ID="hiddenPartNumber" Value='<%#Eval("PartNumber")%>' />
    </asp:Panel>
    <asp:Panel runat="server" Visible='<%#Eval("GenuineOnly").ToString().Length == 0 %>'>
        GENUINE ONLY
    </asp:Panel>
</td>

我假设您可以根据需要添加表/TD。

<asp:Repeater ID="rptr" runat="server" OnItemDataBound="rptr_ItemDataBound">
<ItemTemplate>
        <asp:Label ID="lblGenuineOnly" runat="server" Text='<%#Eval("GenuineOnly") %>' />
        <asp:CheckBox ID="orderPartNumber" runat="server"/>
        <asp:HiddenField ID="hiddenPartNumber" Value ='<%#Eval("PartNumber")%>' runat="server" />
    </ItemTemplate>

背后的代码
protected void rptr_ItemDataBound(object sender, RepeaterItemEventArgs e)
    {
        Label lblPartNumber = (Label)e.Item.FindControl("lblGenuineOnly");
        CheckBox chkPart = (CheckBox)e.Item.FindControl("orderPartNumber");
        if (string.IsNullOrEmpty(lblPartNumber.Text.Trim())) {
            //Display GENUINE ONLY in any label like lblPartNumber.Text = "GENUINE ONLY"
            chkPart.Visible = false;
        }
        else
        {
            chkPart.Visible = true;                
        }
    }

最新更新