C# “操作数”+&引用;在aspx文件中使用Bind/Eval
我有这个aspx代码:C# “操作数”+&引用;在aspx文件中使用Bind/Eval,c#,asp.net,web-applications,C#,Asp.net,Web Applications,我有这个aspx代码: <asp:TemplateField HeaderText="Name" SortExpression="Firmierung"> <ItemTemplate> <asp:HyperLink ID="HyperLink" runat="server" NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>' Text='<%#Bind("Name")
<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条件,这样我就可以将操作数+与文本一起使用,类似这样:
<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>
我不知道在这种情况下如何使用操作数+。谢谢你的帮助。谢谢 您不能使用
Bind
执行此操作。虽然使用Eval
可以添加一些C代码,但是使用Bind
是不可能的Eval
实际上是一个方法调用,但是Bind
只是一个声明,框架将其转换为一些绑定代码,其格式必须是Bind(“FieldName”)
(您可以添加格式)
Hyperlink
Text
属性不可由客户端编辑,因此Eval
应该足够了,您可以将其写入一行
<asp:HyperLink ID="HyperLink" runat="server"
NavigateUrl='<%#Eval("Id", "DetailInfo.aspx?Id={0}") %>'
Text='<%# Eval("Name") + (Condition ? + Eval("Active") : "") %>' />
试试这个
Text='<%# String.Format({0}{1},Eval("Name"),Eval("Active")) %>'
Text=''
或
Text=''
有关更多帮助,请访问链接:
因此,根据您的建议,我确实喜欢:Text=''/>并且我得到了一个错误:“Bind”这个名称在当前上下文中不存在。有什么不对劲吗?你不能这么做。您不能将代码添加到
绑定中
。您只能使用Eval
。“你到底想干什么?”马格纳斯,这不是我的答案。我在后退。如果您有其他想法,请发表评论或写下您自己的答案。@AmiramKorach对此表示抱歉,认为是语法错误。@AmiramKorach:我解决了这个问题,我的答案在上面。谢谢你的帮助:)。我想要的是检查这个名称是否是活动的(bool),然后我打印超链接的文本是Name(活动),否则,文本是惟一的Name.:)您好,谢谢您的回答,这正是我要找的,但是您的回答中有一点语法错误,我们需要用“”表示{0}{1}。这是我的代码,工作起来很有魅力:Text=''
Text='<%# String.Format({0}{1},Bind("Name"),Bind("Active")) %>'