访问SqlDataSource导致转换后面的代码

时间:2014-06-30 17:21:10

标签: asp.net telerik-grid sqldatasource

我在ASP.NET页面上有SqlDataSource并将其加载到Telerik的RadGrid控件中。

<asp:SqlDataSource 
    ID="DataSource" 
    runat="server"    
    ConnectionString="<%$ ConnectionStrings:ServerConnectionString %>" 
    SelectCommand="SELECT [Timestamp], [Label], [Project], [Product], [Value], [Reference] FROM [Operation]">
</asp:SqlDataSource

我的字段[Value]是表示枚举的字节值。当我将数据加载到网格中时,我想将这些字节值转换为它们的枚举等价物,换句话说,我想要明文形式。

我尝试在SqlDataSource组件的OnSelected和OnLoad()事件中做一些事情,但没有成功。有没有办法在呈现之前访问源自SqlDataSource的代码中的数据?

1 个答案:

答案 0 :(得分:0)

您可以在 RadGrid RowDataBound 事件类似的GridView ItemDataBound事件>。例如:

ASPX:

<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="DataSource"
                 OnItemDataBound="RadGrid1_ItemDataBound" >  

C#Code-Behind:

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)     
{  
    if (e.Item is GridDataItem) // get the row collection of cells/items
    {  
        GridDataItem dataItem = (GridDataItem)e.Item; 

        // here we are converting the TEXT value to INT of the "VALUE" column

        if(int.Parse(dataItem["Value"].Text) == 1)
            dataItem["Value"].Text = "A"; // here you can set cell value as you like
    }
}