我有一个ASP.NET GridView,其列映射到布尔值.我想显示"是"/"否"而不是"真"/"假".其实我想要"Ja"/"Nej"(丹麦文).
这可能吗?
<asp:gridview id="GridView1" runat="server" autogeneratecolumns="false">
<columns>
...
<asp:boundfield headertext="Active" datafield="Active" dataformatstring="{0:Yes/No}" />
...
</columns>
</asp:gridview>
Run Code Online (Sandbox Code Playgroud)
tra*_*vis 127
我在VB中使用此代码:
<asp:TemplateField HeaderText="Active" SortExpression="Active">
<ItemTemplate><%#IIf(Boolean.Parse(Eval("Active").ToString()), "Yes", "No")%></ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
这适用于C#(未经测试):
<asp:TemplateField HeaderText="Active" SortExpression="Active">
<ItemTemplate><%# (Boolean.Parse(Eval("Active").ToString())) ? "Yes" : "No" %></ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
Run*_*tad 14
向您的页面类添加一个方法,如下所示:
public string YesNo(bool active)
{
return active ? "Yes" : "No";
}
Run Code Online (Sandbox Code Playgroud)
然后在TemplateField你的Bind使用这种方法:
<%# YesNo(Active) %>
Run Code Online (Sandbox Code Playgroud)
不 - 但您可以使用模板列:
<script runat="server">
TResult Eval<T, TResult>(string field, Func<T, TResult> converter) {
object o = DataBinder.Eval(Container.DataItem, field);
if (converter == null) {
return (TResult)o;
}
return converter((T)o);
}
</script>
<asp:TemplateField>
<ItemTemplate>
<%# Eval<bool, string>("Active", b => b ? "Yes" : "No") %>
</ItemTemplate>
</asp:TemplateField>
Run Code Online (Sandbox Code Playgroud)
你可以使用Mixin.
/// <summary>
/// Adds "mixins" to the Boolean class.
/// </summary>
public static class BooleanMixins
{
/// <summary>
/// Converts the value of this instance to its equivalent string representation (either "Yes" or "No").
/// </summary>
/// <param name="boolean"></param>
/// <returns>string</returns>
public static string ToYesNoString(this Boolean boolean)
{
return boolean ? "Yes" : "No";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97918 次 |
| 最近记录: |