这是我的(工作):
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField HeaderText="Id" DataField="Id" SortExpression="Id">
</asp:BoundField>
<asp:BoundField HeaderText="Name" DataField="Name" SortExpression="Name">
</asp:BoundField>
<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="Label1" runat="server" Text='<% $Resources: Resource, strYes %>' />
<br />
<asp:Label ID="Label2" runat="server" Text='<%# Equals("name1",Eval("Name")) %>' />
<br />
<asp:Label ID="Label3" runat="server" Text='<%# Eval("Name") %>' />
<br />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
我想要的是(不工作):
<asp:Label ID="Label4" runat="server" Text='<% (Equals("a",Eval("Name"))) $Resources: Resource, strYes : $Resources: Resource, strNo %>' />
但我还没有找到如何使它工作! (因此,根据前一列的值,显示一个或另一个Resource项)。
有任何建议可以纠正这个问题吗?谢谢!
答案 0 :(得分:2)
我认为最简单的方法是使用函数的返回值作为标签的文本:
<asp:Label Text="<%# GetLabelText(Container.DataItem) %>" ID="Label1" runat="server" />
然后在.cs文件中
protected string GetLabelText(object dataItem) {
DataRowView dataRowView = (DataRowView)dataItem;
string name = (string)dataRowView.Row["Name"];
return "some string with some logic";
}