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