我从实体框架读取数据,并将ASP.NET页(ASPX)上的转发器绑定到该框架。我的一个字段--iFieldType
包含一个整数值,该整数值被解析为页面标记中的一个枚举项,如下所示:
<owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType"
Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), Convert.ToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' />
这是因为用户不想在页面上看到每个示例“ 1”,而是要看到字段类型“ TextBox”的名称。可惜iFieldType
可以NULL
。因此,我必须替换Enum.Parse
为Enum.TryParse
。可以在markup / html中完成吗?
至少有两种可能的解决方案。
A)我们可以在页面后面的代码中编写执行tryparse的public(!)方法。
例如:
public string FieldTypeTryParseToString(object value)
{
if (value == null)
{
return "0";
}
return value.ToString();
}
然后在标记中实现新方法:
<owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType"
Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), FieldTypeTryParseToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' />
B)我们也可以在标记中做到这一点,但它将使代码更加复杂。在这种情况下,我们检查该值是否为null。
<owiw:CustomTextBox runat="server" ReadOnly="true" ID="txt_FieldType"
Text='<%# Enum.Parse(typeof(DatabaseHelper.CustomFieldTypes), DataBinder.Eval(Container.DataItem, "iFieldType") == null ? "0" : Convert.ToString(DataBinder.Eval(Container.DataItem, "iFieldType"))) %>' />
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句