2015-06-17 17 views
0
<Columns> 
    <telerik:GridBoundColumn DataField="shift_start_time" HeaderText="Shift Start Time" 
    AutoPostBackOnFilter="true" CurrentFilterFunction="Contains"> 
</Columns> 

此列中的值爲來自數據庫的「N」或「M」。如果數值爲「N」或「MORNING」,如果此處的值爲「M」,我想要顯示「NIGHT」。我怎樣才能做到這一點?GridBoundColumn datagrid中的顯示值作爲值文本

我想使用我們用組合框做的「value」「text」的概念。可能嗎?

回答

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"; 
    } 
} 

注:當然,這需要重構,:)

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。 感謝