【问题标题】:ItemTemplate not show link under certain conditionItemTemplate 在某些情况下不显示链接
【发布时间】:2013-08-21 18:00:24
【问题描述】:

我的网格视图中有以下内容:

        <ItemTemplate>
        <asp:LinkButton ID="lnkRemediation" runat="server" CommandName="Remediation" CommandArgument='<%#Eval("AlertId")%>'> REMEDY
        </asp:LinkButton>
        </ItemTemplate>

我喜欢仅在名为 WorkOrder 的字段中有值时才显示说明 REMEDY 的文本。

不知道该怎么做。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    替换为:

    <ItemTemplate>
       <asp:LinkButton ID="lnkRemediation" runat="server" CausesValidation="False" 
          CommandArgument='<%# Eval("AlertId") %>' CommandName="Remediation" 
          Text="Ready" Visible='<%# !string.IsNullOrEmpty(Eval("WorkOrder").ToString()) %>'>
       </asp:LinkButton>
    </ItemTemplate>
    

    【讨论】:

      【解决方案2】:

      我建议在您的代码隐藏文件中使用RowDataBound 事件。它将使您能够自定义每行的数据和属性。在这里,您可以定位您的 LinkBut​​ton 并添加(或删除)所需的文本,还可以根据您的情况更改 CommandArgument 值。

      【讨论】:

        【解决方案3】:

        你可以用这个

        <asp:LinkButton ID="lnkRemediation" runat="server" 
          Visible='<%# Eval("WorkOrder") != null %>'...>
           REMEDY
        </asp:LinkButton>
        

        【讨论】:

          【解决方案4】:

          最好的办法是在数据源上创建另一个属性

          public string RemediationText
          {
              get
              {
                  return WorkOrder != null ? "REMEDY" : null;
              }
          }
          

          然后您可以将其数据绑定到 LinkBut​​ton 的文本

          <asp:LinkButton runat="server" Text='<%#Eval("RemediationText")%>' CommandName="Remediation" CommandArgument='<%#Eval("AlertId")%>'/>
          

          【讨论】:

            猜你喜欢
            • 2018-08-13
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-07-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多