繁体   English   中英

如果在其他情况下,则在带有复选框的ASP.NET Repeater中

[英]If then Else in ASP.NET Repeater with Checkbox

这是我的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>

我有一个ASP ItemTemplate,其字段为<%#Eval("GenuineOnly")%>

如果字段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>

我假设您可以根据需要添加Table / 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;                
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM