ItemTemplate在特定条件下不显示链接

时间:2013-08-21 18:00:24

标签: c# asp.net

我在gridview中有以下内容:

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

我喜欢只在名为WorkOrder的字段中存在值时才显示REMEDY文本。

不确定如何做到这一点。

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以使用此

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

答案 2 :(得分:0)

您最好的办法是在DataSource上创建另一个属性

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

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

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

答案 3 :(得分:0)

替换为:

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