我有这个aspx代码:
<asp:TemplateField HeaderText="Name" SortExpression="Firmierung">
<ItemTemplate>
<asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' />
</ItemTemplate>
</asp:TemplateField>
我想添加一个if条件,以便我可以使用带有Text的操作数+,如下所示:
<asp:TemplateField HeaderText="Name" SortExpression="Firmierung">
<ItemTemplate>
<% if(Condition is true) { %>
<asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") + ("Active") %>' />
<% } else { %>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name") %>' />
<% } %>
</ItemTemplate>
</asp:TemplateField>
在这种情况下,我不知道如何使用操作数+。任何帮助赞赏。谢谢!
答案 0 :(得分:0)
您无法使用Bind
执行此操作。虽然使用Eval
,您可以使用Bind
添加一些C#代码,但这是不可能的。 Eval
实际上是一个方法调用,但Bind
只是一个由框架转换为某些绑定代码的声明,其格式必须是Bind("FieldName")
(您可以添加格式)。 / p>
客户端无法编辑Hyperlink
Text
属性,因此Eval
应该足够,您可以将其写入一行。
<asp:HyperLink ID="HyperLink" runat="server"
NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>'
Text='<%# Eval("Name") + (Condition ? + Eval("Active") : "") %>' />
答案 1 :(得分:0)
试试这个
Text='<%# String.Format({0}{1},Eval("Name"),Eval("Active")) %>'
OR
Text='<%# String.Format({0}{1},Bind("Name"),Bind("Active")) %>'
如需更多帮助,请访问以下链接:
HyperLink with NavigateUrl with Eval(). Where is the mistake?