[DataContract]
public enum TargetDatabase
{
[EnumMember(Value = "US")]
US = 0,
[EnumMember(Value = "Canada")]
Canada = 1
}
This Works!Enum.Tostring返回int而不是字符串
<telerik:GridTemplateColumn HeaderText="Service Code" ReadOnly="True" SortExpression="ServiceCode"
UniqueName="colServiceCode">
<ItemTemplate>
<asp:HyperLink class="linkGreenBoldUnderlined" ID="lnkServiceCode" runat="server"
Text='<%# DataBinder.Eval(Container.DataItem, "ServiceCode")%>' NavigateUrl='<%# String.Format("~/Test.aspx?ServiceId={0}DB={1}", DataBinder.Eval(Container.DataItem, "ServicesID"), TargetSystem) %>'></asp:HyperLink>
</ItemTemplate>
在这背后的代码不起作用
linkClient.NavigateUrl = String.Format("~/Test.aspx?ClientId={0}&DB={0}", client.Client.ID, TargetSystem.ToString());
OR
linkClient.NavigateUrl = String.Format("~/Test.aspx?ClientId={0}&DB={0}", client.Client.ID, TargetSystem);
当我使用上面的代码,我得到
Test.aspx的?客户端Id = 1 & DB = 1
,但我想
Test.aspx的?客户端Id = 1 & DB =加拿大
谁知道为什么C#会产生一个代替一个字符串值?枚举存储在web服务上,但在一些地方这是有效的,有些地方则不行。
MSDN文档:
格式参数可以包含 “G” 或 “G”, “d” 或 “d”, “X” 或 “x”,和 “F” 或 “F” 格式字符串。 如果格式为空或空字符串(“”),则使用通用格式说明符(“G”)。
例
enum Colors {Red, Green, Blue, Yellow = 12};
Console.WriteLine("myColor.ToString(\"G\") = {0}", myColor.ToString("G"));
myColor.ToString("g") = Yellow
myColor.ToString("G") = Yellow
” ...在一些地方这是有效的,有些地方则没有。“它在哪里工作,它不在哪里?大概它在你的问题中显示的'ItemTemplate'中不起作用,但是你有没有例子说明它在ASPX视图中的工作方式? – J0e3gan
@ J0e3gan好电话我实际上发布了一个工作,所以我更新了问题,包括一个不工作。希望有帮助 –