将GridBoundColumn数据网格中的值显示为值文本

时间:2015-06-17 00:42:52

标签: asp.net datagridview telerik

<Columns>   
  <telerik:GridBoundColumn DataField="shift_start_time" HeaderText="Shift Start Time"
     AutoPostBackOnFilter="true" CurrentFilterFunction="Contains">
</Columns>

此列中的值为&#34; N&#34;或&#34; M&#34;,来自数据库。我想要显示&#34; NIGHT&#34;如果值为&#34; N&#34;或&#34;早晨&#34;如果值是&#34; M&#34;从这里。我怎样才能做到这一点?

我想使用&#34; value&#34;的概念。 &#34;文本&#34;我们用组合框做的。有可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用实体方式解决它。 在您的实体中,定义一个函数:

public void MorningORNight(){

if(this.shift_start_time is "M"){DisplayField = "Morning"}
else{DisplayField = "Night"}
}

然后,您的实体中也会有一个只读字段。

    [ReadOnly]
public string DisplayField{ get;set; }

然后,在一开始,当您获取shift_start_time时,

        public string shift_start_time{
    get{ return _shiftstarttime;}
    set{_shiftstarttime = value;
 this.MorningORNight();}
    }

然后,您的gridview数据字段应为DisplayField。 感谢

答案 1 :(得分:0)

或者,使用ItemDataBound事件更改文字:

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
    GridDataItem item = e.Item as GridDataItem;
    if(item != null)
    {
        item["shift_start_time"].Text = item["shift_start_time"].Text.ToString() == "M" ? "Morning" : "Night";
    }
}

注意:这当然需要重构:)