protected void RadGrid1_ItemDataBound(object sender, Telerik.WebControls.GridItemEventArgs e){ //Is it a GridDataItem if (e.Item is GridDataItem) { //Get the instance of the right type GridDataItem dataBoundItem = e.Item as GridDataItem; //Check the formatting condition if (int.Parse(dataBoundItem["Size"].Text) > 100 ) { dataBoundItem[ "Received"].ForeColor = Color.Red; dataBoundItem[ "Received"].Font.Bold = true; //Customize more... } }}<telerik:RadGrid ID="grid" CellPadding="1" CellSpacing="0" EnableEmbeddedSkins="false" AlternatingItemStyle-Height="20" ItemStyle-Height="20" ShowFooter="True" AllowSorting="False" runat="server" EnableEmbeddedBaseStylesheet="false" AutoGenerateColumns="false" AllowMultiRowEdit="true" GridLines="None" Width="100%" ExportSettings-FileName="Summary" ExportSettings-Excel-FileExtension="xls" ExportSettings-Excel-Format="HTML" ExportSettings-OpenInNewWindow="true" ExportSettings-ExportOnlyData="true" ExportSettings-IgnorePaging="true"> <ClientSettings> <Scrolling AllowScroll="True" UseStaticHeaders="true" /> </ClientSettings> <HeaderContextMenu EnableEmbeddedSkins="False"></HeaderContextMenu> <MasterTableView ClientDataKeyNames="ROW_ID" DataKeyNames="ROW_ID" EditMode="InPlace" CommandItemDisplay="Bottom" AllowMultiColumnSorting="False" > <EditFormSettings> <EditColumn InsertImageUrl="Update.gif" UpdateImageUrl="Update.gif" EditImageUrl="Edit.gif" CancelImageUrl="Cancel.gif"> </EditColumn> </EditFormSettings> <CommandItemTemplate> <asp:Button ID="btnSave" runat="server" OnClientClick="AddNew();return false;" Text="Add" /> </CommandItemTemplate> </MasterTableView> <ClientSettings> <ClientEvents OnRowCreated="RowCreated" OnGridCreated="GridCreated" OnRowClick="RowClick" OnRowContextMenu="showMenu" OnColumnContextMenu="showHeaderMenu" OnCommand="RadGrid1_Command" OnGridDestroying="GridDestroying" /> </ClientSettings> </telerik:RadGrid>
protected override void RaisePostBackEvent( IPostBackEventHandler source, string eventArgument ) { base.RaisePostBackEvent( source, eventArgument ); if ( source == this. ) { if ( eventArgument.IndexOf( "Refresh" ) != -1 ) { grid.Rebind(); } } }
function GridDestroying(sender, eventArgs) { for (var i = 0; i < sender.get_masterTableView().get_dataItems().length; i++) { var curRow = sender.get_masterTableView().get_dataItems()[i]; for (var j = 0; j < curRow.get_element().cells.length; j++) { var cell = curRow.get_element().cells[j]; if (cell) { $clearHandlers(cell); } } } }

<telerik:RadScriptManager ID="RadScriptManager1" runat="server"></telerik:RadScriptManager><div> <telerik:RadGrid ID="rgdTLCarrierLocations" runat="server" AllowFilteringByColumn="True" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" AutoGenerateDeleteColumn="True" AutoGenerateEditColumn="True" CellSpacing="0" DataSourceID="sdsTLCarrierLocations" GridLines="None" ShowGroupPanel="True"> <ClientSettings AllowDragToGroup="True"> </ClientSettings> <MasterTableView DataKeyNames="CarrierLocation_ID" DataSourceID="sdsTLCarrierLocations" CommandItemDisplay="Bottom" PageSize="20"> <CommandItemSettings ExportToPdfText="Export to PDF"></CommandItemSettings> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px"></HeaderStyle> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px"></HeaderStyle> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="CarrierLocation_ID" DataType="System.Int32" FilterControlAltText="Filter CarrierLocation_ID column" HeaderText="CarrierLocation_ID" ReadOnly="True" SortExpression="CarrierLocation_ID" UniqueName="CarrierLocation_ID" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CarrierLocation_CarrierID" DataType="System.Int32" FilterControlAltText="Filter CarrierLocation_CarrierID column" HeaderText="CarrierLocation_CarrierID" ReadOnly="True" SortExpression="CarrierLocation_CarrierID" UniqueName="CarrierLocation_CarrierID" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CarrierLocation_LocationID" DataType="System.Int32" FilterControlAltText="Filter CarrierLocation_LocationID column" HeaderText="CarrierLocation_LocationID" ReadOnly="True" SortExpression="CarrierLocation_LocationID" UniqueName="CarrierLocation_LocationID" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Carrier_Name" FilterControlAltText="Filter Carrier_Name column" HeaderText="Carrier" SortExpression="Carrier_Name" UniqueName="Carrier_Name" ReadOnly="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="LocationName" FilterControlAltText="Filter LocationName column" HeaderText="Location" ReadOnly="True" SortExpression="LocationName" UniqueName="LocationName"> </telerik:GridBoundColumn> <telerik:GridDropDownColumn DataField="CarrierLocation_CarrierID" DataSourceID="sdsCarriers" FilterControlAltText="Filter column column" HeaderText="Carrier" ListTextField="Carrier_Name" ListValueField="Carrier_ID" SortExpression="Carrier_Name" UniqueName="column" Visible="False"> </telerik:GridDropDownColumn> <telerik:GridDropDownColumn DataField="CarrierLocation_LocationID" DataSourceID="sdsTLLocations" FilterControlAltText="Filter column1 column" HeaderText="Location" ListTextField="LocationName" ListValueField="Location_ID" SortExpression="LocationName" UniqueName="column1" Visible="False"> <ItemStyle Width="200px" /> </telerik:GridDropDownColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> </telerik:RadGrid></div><asp:SqlDataSource ID="sdsTLCarrierLocations" runat="server" ConflictDetection="CompareAllValues" ConnectionString="<%$ ConnectionStrings:LogisticsConnectionString %>" DeleteCommand="DELETE FROM [log].[TLCarrierLocation] WHERE [CarrierLocation_ID] = @original_CarrierLocation_ID" InsertCommand="INSERT INTO [log].[TLCarrierLocation] ([CarrierLocation_CarrierID], [CarrierLocation_LocationID]) VALUES (@CarrierLocation_CarrierID, @CarrierLocation_LocationID)" OldValuesParameterFormatString="original_{0}" SelectCommand="SELECT [CarrierLocation_ID], [CarrierLocation_CarrierID], [CarrierLocation_LocationID], [Carrier].[Carrier_Name], [TLLocation].Location_City + ' (' + [TLLocation].Location_County + ', ' + [TLState].State_Name + ')' AS LocationName FROM [log].[TLCarrierLocation] INNER JOIN [log].[Carrier] ON Carrier_ID = CarrierLocation_CarrierID INNER JOIN [log].[TLLocation] ON Location_ID = CarrierLocation_LocationID INNER JOIN [log].[TLState] ON State_ID = Location_StateID" UpdateCommand="UPDATE [log].[TLCarrierLocation] SET [CarrierLocation_CarrierID] = @CarrierLocation_CarrierID, [CarrierLocation_LocationID] = @CarrierLocation_LocationID WHERE [CarrierLocation_ID] = @original_CarrierLocation_ID"> <DeleteParameters> <asp:Parameter Name="original_CarrierLocation_ID" Type="Int32" /> </DeleteParameters> <InsertParameters> <asp:Parameter Name="CarrierLocation_CarrierID" Type="Int32" /> </InsertParameters> <UpdateParameters> <asp:Parameter Name="CarrierLocation_CarrierID" Type="Int32" /> <asp:Parameter Name="CarrierLocation_LocationID" Type="Int32" /> <asp:Parameter Name="original_CarrierLocation_ID" Type="Int32" /> </UpdateParameters></asp:SqlDataSource><asp:SqlDataSource ID="sdsTLLocations" runat="server" ConnectionString="<%$ ConnectionStrings:LogisticsConnectionString %>" SelectCommand="SELECT [Location_ID], [TLLocation].Location_City + ' (' + [TLLocation].Location_County + ', ' + [TLState].State_Name + ')' AS LocationName FROM [log].[TLLocation] INNER JOIN [log].[TLState] ON State_ID = Location_StateID"></asp:SqlDataSource><asp:SqlDataSource ID="sdsCarriers" runat="server" ConnectionString="<%$ ConnectionStrings:LogisticsConnectionString %>" SelectCommand="SELECT [Carrier_ID], [Carrier_Name] FROM [log].[Carrier] ORDER BY [Carrier_Name]"></asp:SqlDataSource>I have a context menu that I wish to show in response to a client-side click event. This works in IE9 but not in any earlier version, nor if in compatibility mode.
After a bit of digging, and tracing into the "show()" method it appears that the method is relying on the passed event object having a "target" property, which IE appears not to support (at least prior to IE9). Instead, IE seems to use a property called "srcElement" instead.
So for the benegit of anyone else struggling with this, here's my patched code that now seems to work ok...
function onButtonClickToShowMenu(e) { if (!e.target && e.srcElement) e.target = e.srcElement; var menu = $find('mymenuId'); menu.show(e);}<%
@ Page Language="C#" AutoEventWireup="true" CodeBehind="OpenItemsInventory.aspx.cs"
Inherits="Sterling.SNEF.Tax.Web.OpenItemsInventory" %>
<%
@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head runat="server">
<title>Open Items Inventory</title>
</
head>
<
telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<
script type="text/javascript">
var rad_val;
function onFutureInventory(sender, args) {
document.getElementById(
'<%= btnFutureInventory.ClientID %>').disabled = true;
GetRadioValue();
var windowURL = "FutureInventoryDialog.aspx?ViewByType=" + rad_val
var oWnd = $find("<%= dlgFutureInventory.ClientID%>");
oWnd.setUrl(windowURL);
oWnd.SetSize(500, 500);
oWnd.show();
oWnd.set_initialBehaviors(Telerik.Web.UI.WindowBehaviors.Close);
oWnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Close);
oWnd.SetModal(
true);
}
function GetRadioValue()
{
message =
"";
surplusMessage =
"";
if (document.getElementById('<%= rdoAssignee.ClientID %>').checked)
{
rad_val =
"Assignee";
}
else
{
rad_val =
"State";
}
}
function onFutureInventoryClose(sender, eventArgs) {
document.getElementById(
'<%= btnFutureInventory.ClientID %>').disabled = false;
}
</
script>
</
telerik:RadCodeBlock>
<
body>
<form id="form1" runat="server">
<telerik:RadScriptManager ID="OpenItemsInventoryScriptManager" runat="server">
</telerik:RadScriptManager>
<telerik:RadWindow ID="dlgFutureInventory" runat="server" Skin="Web20" EnableViewState="False"
KeepInScreenBounds="True" ReloadOnShow="True" ShowContentDuringLoad="False" VisibleStatusbar="False"
Behaviors="None" OnClientClose="onFutureInventoryClose" onclientOverlay="True">
</telerik:RadWindow>
<asp:Label ID="lblViewBy" runat="server" Font-Bold="True" Text="View By:"></asp:Label>
<asp:RadioButton ID="rdoAssignee" runat="server" Text="Assignee" GroupName="ViewByGroup"
OnCheckedChanged="ViewByGroup_CheckedChanged" Checked="true" AutoPostBack="true" />
<asp:RadioButton ID="rdoState" runat="server" Text="State" GroupName="ViewByGroup"
OnCheckedChanged="ViewByGroup_CheckedChanged" AutoPostBack="true" />
<br />
<br />
<table border="1">
<tr>
<td rowspan="2" align="center" style="width: 100px;">
<asp:Label ID="lblhdrAssignee" runat="server" Text="Assignee" Font-Bold="True"></asp:Label>
</td>
<td rowspan="2" align="center" style="width: 100px;">
<asp:Label ID="Label2" runat="server" Text="Jurisdictions" Font-Bold="True"></asp:Label>
</td>
<td colspan="2" align="center" style="width: 200px;">
<asp:Label ID="Label3" runat="server" Text="Open Items by Age" Font-Bold="True"></asp:Label>
</td>
<td rowspan="2" align="center" style="width: 100px;">
<asp:Label ID="Label4" runat="server" Text="Items Left to Pay" Font-Bold="True"></asp:Label>
</td>
<td rowspan="2" align="center" style="width: 100px;">
<asp:Label ID="Label5" runat="server" Text="%Complete" Font-Bold="True"></asp:Label>
</td>
</tr>
<tr>
<td align="center" style="width: 100px;">
<asp:Label ID="Label6" runat="server" Text="Prior" Font-Bold="True"></asp:Label>
</td>
<td align="center" style="width: 100px;">
<asp:Label ID="Label7" runat="server" Text="Current" Font-Bold="True"></asp:Label>
</td>
</tr>
<tr>
<td align="center" style="width: 100px;">
<asp:Label ID="Label1" runat="server" Text="Totals" Font-Bold="True"></asp:Label>
</td>
<td align="center" style="width: 100px;">
<asp:Label ID="lblhdrJurisdictions" runat="server"></asp:Label>
</td>
<td align="center" style="width: 100px;">
<asp:Label ID="lblhdrPrior" runat="server"></asp:Label>
</td>
<td align="center" style="width: 100px;">
<asp:Label ID="lblhdrCurrent" runat="server"></asp:Label>
</td>
<td align="center" style="width: 100px;">
<asp:Label ID="lblhdrItemsLeft" runat="server"></asp:Label>
</td>
<td align="center" style="width: 100px;">
<asp:Label ID="lblhdrPctComplete" runat="server"></asp:Label>
</td>
</tr>
</table>
<br />
<table>
<tr>
<td>
<asp:Label ID="lblCurrentandPrior" runat="server" Font-Bold="True" Font-Size="Large">Current and
Prior Inventory by Assignee
</asp:Label>
</td>
</tr>
<tr>
<td>
<telerik:RadGrid ID="grdCurrentandPrior" runat="server" AllowSorting="True" AutoGenerateColumns="False"
GridLines="None" Skin="Outlook" Style="margin-right: 0px" Width="673px" Height="260px" >
<ExportSettings FileName="OpenItemsCurrentInventory" IgnorePaging="True" OpenInNewWindow="True">
<Excel Format="ExcelML" />
</ExportSettings>
<MasterTableView>
<Columns>
<telerik:GridTemplateColumn HeaderText="Assignee" UniqueName="clmAssigneeState">
<HeaderStyle Font-Bold="True" Width="100px" HorizontalAlign="Center" />
<ItemTemplate>
<asp:LinkButton ID="dataInfo" runat="server" Text='<%# Eval("Assignee") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Jurisdictions" UniqueName="clmJurisdictions">
<HeaderStyle Font-Bold="True" Width="100px" HorizontalAlign="Center" />
<ItemTemplate>
<asp:LinkButton ID="jurisdiction" runat="server" Text='<%# Eval("JurisdictionCount") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn UniqueName="TemplateColumn">
<HeaderTemplate>
<table id="Table1" cellspacing="1" cellpadding="1" width="200px" border="1">
<tr>
<td colspan="2" align="center">
<b>Open Items by Age</b>
</td>
</tr>
<tr>
<td align="center" width="50%">
<b>Prior</b>
</td>
<td align="center" width="50%">
<b>Current</b>
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table id="Table2" cellspacing="1" cellpadding="1" width="260px" border="1">
<tr>
<td width="50%">
<asp:LinkButton ID="LftToPay" runat="server" Text='<%# Eval("OpenItemsCountPrior") %>' />
</td>
<td width="50%">
<asp:LinkButton ID="LinkButton1" runat="server" Text='<%# Eval("OpenItemsCountELD") %>' />
</td>
</tr>
</table>
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridTemplateColumn HeaderText="Items Left to Pay" UniqueName="clmItemsLefttoPay">
<HeaderStyle Font-Bold="True" Width="100px" HorizontalAlign="Center" />
<ItemTemplate>
<asp:LinkButton ID="LftToPay" runat="server" Text='<%# Eval("TotalRemainingItems") %>' />
</ItemTemplate>
</telerik:GridTemplateColumn>
<telerik:GridBoundColumn HeaderText="% Complete" UniqueName="clmPctComplete" DataField="PercentComplete">
<HeaderStyle Font-Bold="True" Width="100px" HorizontalAlign="Center" />
</telerik:GridBoundColumn>
<telerik:GridBoundColumn DataField="AssigneeEmployeeKey" ReadOnly="True"
UniqueName="AssigneeEmployeeKey" Visible="False">
</telerik:GridBoundColumn>
</Columns>
</MasterTableView>
<HeaderStyle BorderStyle="Solid" />
<ClientSettings>
<Scrolling AllowScroll="True" UseStaticHeaders="True" />
</ClientSettings>
</telerik:RadGrid>
</td>
</tr>
</table>
<br />
<table>
<tr>
<td>
<asp:Button ID="btnFutureInventory" runat="server" Text="Future Inventory" SkinID="Web20" OnClientClick="onFutureInventory(); return false;"
Width="164px" UseSubmitBehavior="false" />
</td>
</tr>
</table>
</form>
</
body>
</
html>
DataTable
myDataTable = new DataTable();
DataColumn myDataColumn;
myDataColumn =
new DataColumn();
myDataColumn.DataType =
Type.GetType("System.String");
myDataColumn.ColumnName =
"Assignee";
myDataColumn.DefaultValue =
"Dixon, Kristi";
myDataTable.Columns.Add(myDataColumn);
myDataColumn =
new DataColumn();
myDataColumn.DataType =
Type.GetType("System.Int32");
myDataColumn.ColumnName =
"JurisdictionCount";
myDataColumn.DefaultValue =
"15";
myDataTable.Columns.Add(myDataColumn);
myDataColumn =
new DataColumn();
myDataColumn.DataType =
Type.GetType("System.Int32");
myDataColumn.ColumnName =
"OpenItemsCountPrior";
myDataColumn.DefaultValue =
"2";
myDataTable.Columns.Add(myDataColumn);
myDataColumn =
new DataColumn();
myDataColumn.DataType =
Type.GetType("System.Int32");
myDataColumn.ColumnName =
"OpenItemsCountELD";
myDataColumn.DefaultValue =
"153";
myDataTable.Columns.Add(myDataColumn);
myDataColumn =
new DataColumn();
myDataColumn.DataType =
Type.GetType("System.Int32");
myDataColumn.ColumnName =
"TotalRemainingItems";
myDataColumn.DefaultValue =
"155";
myDataTable.Columns.Add(myDataColumn);
myDataColumn =
new DataColumn();
myDataColumn.DataType =
Type.GetType("System.Decimal");
myDataColumn.ColumnName =
"PercentComplete";
myDataColumn.DefaultValue =
"0.00";
myDataTable.Columns.Add(myDataColumn);
myDataColumn =
new DataColumn();
myDataColumn.DataType =
Type.GetType("System.Int32");
myDataColumn.ColumnName =
"AssigneeEmployeeKey";
myDataColumn.DefaultValue =
"1113";
myDataTable.Columns.Add(myDataColumn);
grdCurrentandPrior.DataSource = myDataTable.DefaultView;
grdCurrentandPrior.DataBind();