Доступ к SqlDataSource приводит к коду для преобразования

#asp.net #telerik-grid #sqldatasource

#asp.net #telerik-grid #sqldatasource

Вопрос:

У меня есть SqlDataSource на моем ASP.NET страница и загрузите это в элемент управления RadGrid от Telerik.

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

Мое поле [Значение] — это байтовое значение, представляющее перечисление. Когда я загружаю данные в сетку, я хотел бы преобразовать эти байтовые значения в их эквиваленты enum, другими словами, я хочу использовать текстовую форму.

Я пытался что-то сделать в событиях OnSelected и OnLoad() компонента SqlDataSource, но безуспешно. Есть ли способ получить доступ к данным в коде, исходящем из SqlDataSource, до того, как он будет отображен?

Ответ №1:

Вы можете посмотреть на ItemDataBound событие RadGrid , которое похоже на RowDataBound событие в GridView . Например:

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