【问题标题】:Hide item template in aspx page based on condition根据条件在aspx页面中隐藏项目模板
【发布时间】:2017-04-16 11:17:07
【问题描述】:

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

<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") %>

我不知道该怎么做

【问题讨论】:

    标签: asp.net aspxgridview


    【解决方案1】:

    我尝试了以下代码,它可以工作

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

    【讨论】:

      【解决方案2】:

      @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
                            }
      
                 }
      

      【讨论】:

      • 是的。如果状态为“1”,则显示项目模板,否则禁用。希望你明白我的意思。谢谢
      • @aniltc 好的,首先您需要将 itemtemplate 的可见属性设置为 false visible="false" 然后在文本框中获取状态值,并使用 if else 语句使您的 itemtemplate 可见或隐藏。跨度>
      • @aniltc 我已经更新了我的答案,请检查。它没有经过测试,但逻辑将是相似的。
      【解决方案3】:

      您可以像这样在链接按钮上设置 Visible 属性:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-06
        • 2020-08-19
        • 2023-01-10
        • 2021-09-04
        • 2017-01-08
        相关资源
        最近更新 更多