You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP中如何将Telerik Grid布尔列的True/False替换为Open/Close

解决方案

你可以通过以下两种常用方案实现布尔值的显示文本转换:

方案1:修改前端列为模板列(推荐,无需额外编写后端逻辑)

把原来的GridBoundColumn替换为GridTemplateColumn,直接在前端绑定时做判断转换,修改后的前端代码如下:

<telerik:GridTemplateColumn HeaderText="Is the product Web On/Off?"
                            FilterControlWidth="100px" AutoPostBackOnFilter="true" CurrentFilterFunction="Contains" AllowFiltering="false"
                            FilterDelay="1500" ShowFilterIcon="false">
    <ItemTemplate>
        <%# (bool)Eval("PublishOnB2B") ? "Open" : "Close" %>
    </ItemTemplate>
</telerik:GridTemplateColumn>

该方案无需修改原有后端绑定逻辑,实现简单,加载效率更高。

注意:如果PublishOnB2B字段允许为空,需要先做空值判断再转换,避免运行时报错。

方案2:保留原有BoundColumn,通过后端ItemDataBound事件处理

如果不想改动前端列类型,可以通过RadGrid的行绑定事件逐行处理:

  1. 给RadGrid控件添加OnItemDataBound事件属性:
<telerik:RadGrid ID="RadGrid1" runat="server" OnItemDataBound="RadGrid1_ItemDataBound" (保留你原有其他属性)>
  1. 在.aspx.cs后台添加对应的事件处理方法:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    // 仅处理数据行,跳过表头、分页栏等非数据行
    if (e.Item is GridDataItem dataItem)
    {
        bool publishStatus = (bool)DataBinder.Eval(dataItem.DataItem, "PublishOnB2B");
        dataItem["PublishOnB2B"].Text = publishStatus ? "Open" : "Close";
    }
}

该方案适合需要同步做其他行逻辑处理的场景。

内容的提问来源于stack exchange,提问作者burak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:45:03