根据条件在aspx页面中隐藏项目模板

Hide item template in aspx page based on condition

我的列表视图中有以下项目模板

<ItemTemplate>
    <asp:LinkButton ID="ibtnEdit" runat="server" Height="20px" Width="20px" ToolTip="Edit  this Category" CommandArgument='<%#  Eval("Category_ID")  %>' CommandName="EditObject"  CausesValidation="False"> <i class="glyphicon glyphicon-edit"></i>&nbsp;</asp:LinkButton> 
</ItemTemplate>

我想根据以下条件隐藏此列。此状态字段包含 1 或 0。

<%#    Bind("Status") %>

我不知道该怎么做

@aniltc 你也想根据条件 0 和 1 使其可见吗?

试试这个,但没有测试,我相信逻辑会相似:

    if (txt_Status.Text != "")
        {
            string a, b;
                a=0;
                b=1;
        if (txt_Status.Text==a)
                    {

                        LinkButton lnkEdit = [YourDatalist].FindControl("ibtnEdit") as LinkButton;
                        lnkEdit.Visible = false;
                    }
         else if (txt_Status.Text == b)
                    {

                        LinkButton lnkEdit = [YourDatalist].FindControl("ibtnEdit") as LinkButton;
                        lnkEdit.Visible = true
                      }

           }

我尝试使用以下代码,它有效

 <asp:LinkButton ID="ibtnEdit" runat="server" Height="20px" Width="20px" ToolTip="Edit  this Category"
                        CommandArgument='<%#  Eval("Category_ID")  %>' Visible='<%# DecideHere((int)Eval("Status")) %>'  CommandName="EditObject"
                        CausesValidation="False"> <i class="glyphicon glyphicon-edit"></i>&nbsp;</asp:LinkButton> 

在后面的代码中

 protected bool DecideHere(int id)
             {
                if (id == 1 )
                    return true;
                else
                    return false;
             }

您可以像这样在 link 按钮上设置可见 属性:

Visible='<%# Iif(Eval("Status")=1,True,False) %>'

请注意,您要使用 Eval 而不是 Bind 来进行单向数据读取。