好的,我有一个 GridView,如果文件存在,我想有一列作为链接,否则我只希望它是一个标签。现在,我正在使用传入参数的 Row 更改 RowDataBound 事件处理程序上的控件。我不是这个的忠实粉丝,因为我对列 ID 进行了硬编码,如果它发生变化,我需要记住更改此代码。如果属性值不为空,我希望我可以在 asp 代码中添加一个链接,否则添加一个标签。这可能吗?有什么不同的解决方案吗?
我想要这样的东西:
<asp:TemplateField HeaderText="Status">
<ItemTemplate>
<%# if (Eval("LogFileName") == null)
<%#{
<asp:LinkButton ID="LogFileLink" runat="server" CommandArgument='<% #Eval("LogFileName") %>' CommandName="DownloadLogFile" Text='<%# Blah.NDQA.Core.Utilities.GetEnumerationDescription(typeof(Blah.NDQA.Core.BatchStatus), Eval("Status")) %>'>
<%# }
<%# else
<%#{
<asp:Label ID="LogFileLabel" runat="server"Text='<%# Blah.NDQA.Core.Utilities.GetEnumerationDescription(typeof(Blah.NDQA.Core.BatchStatus), Eval("Status")) %>'>
</asp:Label>
</ItemTemplate>
</asp:TemplateField>