我试图将一个if语句插入到.aspx文件的表行中,似乎无论我做什么,它都无法正常工作。这就像试图回答一个没有正确答案的问题。以下是有问题的代码:
<%If Container.DataItem("ReportToolTipText") == 'Pending Approval' %>
<td>
<asp:LinkButton ID="LinkButton1" runat="server" Font-Size="Medium" CommandName="Select" CommandArgument='<%# Eval("CertID") & "," & Eval("ReportID") & "," & Eval("PUCOID") %> ' OnClientClick="javascript:alert('This report is not editable');" OnCommand="CertLink_Clicked"><%# Container.DataItem("CertID")%></asp:LinkButton>
<asp:Label ID="lblCertSortName" runat="server" Font-Size="Medium" Text='<%# Container.DataItem("ReportDisplaySortName")%>'></asp:Label>
</td>
<% Else%>
<td>
<asp:LinkButton ID="LinkButton1B" runat="server" Font-Size="Medium" CommandName="Select" CommandArgument='<%# Eval("CertID") & "," & Eval("ReportID") & "," & Eval("PUCOID") %> ' OnCommand="CertLink_Clicked"><%# Container.DataItem("CertID")%></asp:LinkButton>
<asp:Label ID="lblCertSortNameB" runat="server" Font-Size="Medium" Text='<%# Container.DataItem("ReportDisplaySortName")%>'></asp:Label>
</td>
<% End If%>
我无法运行此代码,因为似乎顶部if语句的每个变体都会触发错误语句。这是我尝试执行上述代码时收到的错误消息:
BC30451:未声明“容器”。由于其保护级别,它可能无法访问。
所以我尝试将括号中的Container.DataItem变量和百分比符号包围起来,使其他代码行保持不变:
<%If <%# Container.DataItem("ReportToolTipText") #> == 'Pending Approval' %>
当我这样做时,我收到了这个错误:
BC30081:'如果'必须以匹配的'结束时'结束。
它在说什么?我有一个结束,如果在底部。
所以我尝试用单引号括起Container.DataItem变量以及括号和百分号这样的代码,让其他代码行保持不变:
<%If '<%#Container.DataItem("ReportToolTipText")%>' == 'Pending Approval' %>
当我这样做时,我收到了这个错误:
BC30201:预期表达。
同样,if语句中有一个表达式。
所以我尝试用括号括起整个表达式,就像这样,让其他代码行保持不变:
<% If ('<%#Container.DataItem("ReportToolTipText")%>' == 'Pending Approval') %>
我收到了与上次相同的错误消息:
BC30201:预期表达。
所以我尝试在Container.DataItem变量之前只有一个数字符号,就像这样,让其他代码行保持不变:
<% If (#Container.DataItem("ReportToolTipText") == 'Pending Approval') %>
我连续第三次收到此错误消息:
BC30201:预期表达。
我做错了什么?任何人都可以提供给我的任何帮助将不胜感激。