or
<telerik:AjaxSetting AjaxControlID="RadGrid"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid" LoadingPanelID="RadAjaxLoadingPanel1" /> </UpdatedControls> </telerik:AjaxSetting><telerik:RadGrid ID="RadGrid1" runat="server" GridLines="None" Width="900px" OnNeedDataSource="RadGrid1_NeedDataSource" oncolumncreated="RadGrid1_ColumnCreated" AutoGenerateHierarchy="true" AutoGenerateColumns="true" > </telerik:RadGrid>protected void RadGrid1_NeedDataSource(object source, Telerik.Web.UI.GridNeedDataSourceEventArgs e) { this.RadGrid1.DataSource = CreateDataSet(); } private DataSet CreateDataSet() { DataSet dataset = new DataSet(); string previousFY = string.Empty; string currentFY = string.Empty; if (DateTime.Now.Month >= 7) { previousFY = DateTime.Now.Year.ToString(); currentFY = (DateTime.Now.Year + 1).ToString(); } else { previousFY = (DateTime.Now.Year - 1).ToString(); currentFY = DateTime.Now.Year.ToString(); } OpenDataDataContext db = new OpenDataDataContext(); // FUND var prevFYFundTotals = from t in db.open_FY_Totals join f in db.Funds on new { Fund = t.Fund } equals new { Fund = f.fieldcode } where t.FY == currentFY group new { t, f } by new { t.FY, Fund = t.Fund.Substring(0, 2) } into g orderby g.Key.FY, g.Key.Fund select new { g.Key.FY, g.Key.Fund, Fund_Desc = g.Max(p => p.f.desc30), Budget = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.BudgetAmt)), Actual = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.ActualAmt)), Encumbered = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.EncAmt)), Committed = String.Format("{0:$#,0.00}", (System.Decimal?)(g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt))), PercentCommitted = String.Format("{0:0.00}%", (Decimal?)Convert.ToDecimal((g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt)) / g.Sum(p => p.t.BudgetAmt) * 100)), Remaining = String.Format("{0:$#,0.00}", (System.Decimal?)(g.Sum(p => p.t.BudgetAmt) - (g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt)))) }; DataTable dtPrevFYFundTotals = new DataTable(); dtPrevFYFundTotals.TableName = "PrevFYFundTotals"; dtPrevFYFundTotals.Columns.Add("Fund", typeof(string)); dtPrevFYFundTotals.Columns.Add("Fund_Desc", typeof(string)); dtPrevFYFundTotals.Columns.Add("Budget", typeof(string)); dtPrevFYFundTotals.Columns.Add("Actual", typeof(string)); dtPrevFYFundTotals.Columns.Add("Encumbered", typeof(string)); dtPrevFYFundTotals.Columns.Add("Committed", typeof(string)); dtPrevFYFundTotals.Columns.Add("PercentCommitted", typeof(string)); dtPrevFYFundTotals.Columns.Add("Remaining", typeof(string)); DataColumn[] keys = new DataColumn[1]; keys[0] = dtPrevFYFundTotals.Columns["Fund"]; dtPrevFYFundTotals.PrimaryKey = keys; dataset.Tables.Add(dtPrevFYFundTotals); foreach (var item in prevFYFundTotals) { dtPrevFYFundTotals.Rows.Add(new object[] { item.Fund, item.Fund_Desc, item.Budget, item.Actual, item.Encumbered, item.Committed, item.PercentCommitted, item.Remaining }); } // RESP var prevFYRespTotals = from t in db.open_FY_Totals join r in db.Resps on new { Resp = t.Resp } equals new { Resp = r.fieldcode } where t.FY == currentFY group new { t, r } by new { t.FY, Fund = t.Fund.Substring(0, 2), t.Resp } into g orderby g.Key.Fund, g.Key.Resp select new { Fund = g.Key.Fund.Substring(0, 2), Resp = g.Key.Resp.Replace(".", ""), Resp_Desc = g.Max(p => p.r.desc30), Budget = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.BudgetAmt)), Actual = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.ActualAmt)), Encumbered = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.EncAmt)), Committed = String.Format("{0:$#,0.00}", (System.Decimal?)(g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt))), PercentCommitted = String.Format("{0:0.00}%", g.Sum(p => p.t.BudgetAmt) > 0 ? ((g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt)) / g.Sum(p => p.t.BudgetAmt)) * 100 : 0), Remaining = String.Format("{0:$#,0.00}", (System.Decimal?)(g.Sum(p => p.t.BudgetAmt) - (g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt)))) }; DataTable dtPrevFYRespTotals = new DataTable(); dtPrevFYRespTotals.TableName = "PrevFYRespTotals"; dtPrevFYRespTotals.Columns.Add("Fund", typeof(string)); dtPrevFYRespTotals.Columns.Add("Resp", typeof(string)); dtPrevFYRespTotals.Columns.Add("Resp_Desc", typeof(string)); dtPrevFYRespTotals.Columns.Add("Budget", typeof(string)); dtPrevFYRespTotals.Columns.Add("Actual", typeof(string)); dtPrevFYRespTotals.Columns.Add("Encumbered", typeof(string)); dtPrevFYRespTotals.Columns.Add("Committed", typeof(string)); dtPrevFYRespTotals.Columns.Add("PercentCommitted", typeof(string)); dtPrevFYRespTotals.Columns.Add("Remaining", typeof(string)); keys = new DataColumn[2]; keys[0] = dtPrevFYRespTotals.Columns["Fund"]; keys[1] = dtPrevFYRespTotals.Columns["Resp"]; dtPrevFYRespTotals.PrimaryKey = keys; dataset.Tables.Add(dtPrevFYRespTotals); foreach (var item in prevFYRespTotals) { dtPrevFYRespTotals.Rows.Add(new object[] { item.Fund, item.Resp, item.Resp_Desc, item.Budget, item.Actual, item.Encumbered, item.Committed, item.PercentCommitted, item.Remaining }); } //OBJECT var prevFYObjTotals = from t in db.open_FY_Totals join o in db.Object_Mgts on new { Obj = t.Obj } equals new { Obj = o.fieldcode } where t.FY == currentFY group new { t, o } by new { t.FY, Fund = t.Fund.Substring(0, 2), t.Resp, t.Obj } into g orderby g.Key.Fund, g.Key.Resp, g.Key.Obj select new { Fund = g.Key.Fund.Substring(0, 2), Resp = g.Key.Resp.Replace(".", ""), Obj = g.Key.Obj.Replace(".", ""), Obj_Desc = g.Max(p => p.o.desc30), Budget = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.BudgetAmt)), Actual = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.ActualAmt)), Encumbered = String.Format("{0:$#,0.00}", (System.Decimal?)g.Sum(p => p.t.EncAmt)), Committed = String.Format("{0:$#,0.00}", (System.Decimal?)(g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt))), PercentCommitted = String.Format("{0:0.00}%", g.Sum(p => p.t.BudgetAmt) > 0 ? ((g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt)) / g.Sum(p => p.t.BudgetAmt)) * 100 : 0), Remaining = String.Format("{0:$#,0.00}", (System.Decimal?)(g.Sum(p => p.t.BudgetAmt) - (g.Sum(p => p.t.ActualAmt) + g.Sum(p => p.t.EncAmt)))) }; DataTable dtPrevFYObjTotals = new DataTable(); dtPrevFYObjTotals.TableName = "PrevFYObjTotals"; dtPrevFYObjTotals.Columns.Add("Fund", typeof(string)); dtPrevFYObjTotals.Columns.Add("Resp", typeof(string)); dtPrevFYObjTotals.Columns.Add("Obj", typeof(string)); dtPrevFYObjTotals.Columns.Add("Obj_Desc", typeof(string)); dtPrevFYObjTotals.Columns.Add("Budget", typeof(string)); dtPrevFYObjTotals.Columns.Add("Actual", typeof(string)); dtPrevFYObjTotals.Columns.Add("Encumbered", typeof(string)); dtPrevFYObjTotals.Columns.Add("Committed", typeof(string)); dtPrevFYObjTotals.Columns.Add("PercentCommitted", typeof(string)); dtPrevFYObjTotals.Columns.Add("Remaining", typeof(string)); keys = new DataColumn[3]; keys[0] = dtPrevFYObjTotals.Columns["Fund"]; keys[1] = dtPrevFYObjTotals.Columns["Resp"]; keys[2] = dtPrevFYObjTotals.Columns["Obj"]; dtPrevFYObjTotals.PrimaryKey = keys; dataset.Tables.Add(dtPrevFYObjTotals); foreach (var item in prevFYObjTotals) { dtPrevFYObjTotals.Rows.Add(new object[] { item.Fund, item.Resp, item.Obj, item.Obj_Desc, item.Budget, item.Actual, item.Encumbered, item.Committed, item.PercentCommitted, item.Remaining }); } // Create Relationships // Fund DataTable to Resp DataTable relationship DataRelation FundRespRelation = new DataRelation("FundResp", dataset.Tables["PrevFYFundTotals"].Columns["Fund"], dataset.Tables["PrevFYRespTotals"].Columns["Fund"]); // Resp DataTable to Obj DataTable DataRelation RespObjRelation = new DataRelation("RespObj", dataset.Tables["PrevFYRespTotals"].Columns["Resp"], dataset.Tables["PrevFYObjTotals"].Columns["Resp"]); // there may not be records all the way down... dataset.EnforceConstraints = false; dataset.Relations.Add(FundRespRelation); dataset.Relations.Add(RespObjRelation); return dataset; } protected void RadGrid1_ColumnCreated(object sender, GridColumnCreatedEventArgs e) { if (e.Column.UniqueName == "Fund") e.Column.Visible = false; else if (e.Column.UniqueName == "Resp") e.Column.Visible = false; else if (e.Column.UniqueName == "Obj") e.Column.Visible = false; else if (e.Column.HeaderText.Contains("Desc")) { e.Column.HeaderText = "Account Description"; e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Bottom; if (e.OwnerTableView.Name == "") e.Column.HeaderStyle.Width = Unit.Pixel(350); else if (e.OwnerTableView.Name == "PrevFYRespTotals") e.Column.HeaderStyle.Width = Unit.Pixel(265); else e.Column.HeaderStyle.Width = Unit.Pixel(240); } else if (e.Column.HeaderText == "Budget") { e.Column.HeaderText = "Annual Budget"; e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Bottom; e.Column.HeaderStyle.Width = Unit.Pixel(100); e.Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; } else if (e.Column.HeaderText == "Actual") { e.Column.HeaderText = "Actual Spent"; e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Bottom; e.Column.HeaderStyle.Width = Unit.Pixel(100); e.Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; } else if (e.Column.HeaderText == "Encumbered") { e.Column.HeaderText = "Unpaid Purchase Orders"; e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Bottom; e.Column.HeaderStyle.Width = Unit.Pixel(100); e.Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; } else if (e.Column.HeaderText == "Committed") { e.Column.HeaderText = "Total Committed"; e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Bottom; e.Column.HeaderStyle.Width = Unit.Pixel(100); e.Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; } else if (e.Column.HeaderText == "Percent Committed") { e.Column.HeaderText = "Percent Committed"; e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Bottom; e.Column.HeaderStyle.Width = Unit.Pixel(50); e.Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; } else if (e.Column.HeaderText == "Remaining") { e.Column.HeaderText = "Remaining Budget"; e.Column.HeaderStyle.HorizontalAlign = HorizontalAlign.Right; e.Column.HeaderStyle.VerticalAlign = VerticalAlign.Bottom; e.Column.HeaderStyle.Width = Unit.Pixel(100); e.Column.ItemStyle.HorizontalAlign = HorizontalAlign.Right; } }<add name="Telerik_Web_UI_WebResource_axd" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" preCondition="integratedMode,runtimeVersionv2.0"/><telerik:RadCodeBlock ID="RadCodeBlock1" runat="server">
<script type="text/javascript">
function OnCommand(sender, args) {
// it is doing nothing
}
</script>
</telerik:RadCodeBlock>
void OnItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
if (e.Item == null)
return;
switch (e.CommandName)
{
// user defined
case "Standard":
GridDataItem item = (GridDataItem)e.Item;
// e.g id is always Id of the first item in radgrid if ClientEvents-OnCommand is defined<telerik:RadGrid ID="rgResults" runat="server" Width="98%"
DataSourceID="sqlResults" AllowPaging="True" GridLines="Both" AllowSorting="True" AutoGenerateColumns="False" BackColor="WhiteSmoke" HorizontalAlign="Left" Font-Names="Verdana" Font-Size="10px" Skin="Windows7" Height="500px"> <ClientSettings AllowDragToGroup="False"> <Scrolling AllowScroll="True" UseStaticHeaders="True" FrozenColumnsCount="4" /> <Selecting AllowRowSelect="True" /> <Resizing AllowColumnResize="True" AllowResizeToFit="True" EnableRealTimeResize="True" ResizeGridOnColumnResize="True" /> </ClientSettings> <AlternatingItemStyle Font-Names="Verdana" Font-Size="9px" BackColor="#CCFFCC" VerticalAlign="Top" /> <HeaderStyle Font-Bold="True" HorizontalAlign="Center" BackColor="#3366CC" ForeColor="White" Wrap="False" Height="35px" /> <ItemStyle Font-Names="Verdana" Font-Size="9px" BackColor="WhiteSmoke" VerticalAlign="Top" /> <MasterTableView AllowMultiColumnSorting="True" GridLines="Both"> <CommandItemSettings ExportToPdfText="Export to Pdf" /> <RowIndicatorColumn FilterControlAltText="Filter RowIndicator column"> <HeaderStyle Width="20px" /> </RowIndicatorColumn> <ExpandCollapseColumn FilterControlAltText="Filter ExpandColumn column"> <HeaderStyle Width="20px" /> </ExpandCollapseColumn> <Columns> <telerik:GridBoundColumn DataField="act_tick_id" FilterControlAltText="Filter column column" UniqueName="ID" Visible="False"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Target_DT" FilterControlAltText="Filter column column" HeaderStyle-Width="88px" HeaderText="Target Close<br />Date & Time" UniqueName="TargDT" DataType="System.DateTime" DataFormatString="{0:MM/dd/yyyy hh:mm tt}"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="priority_code" FilterControlAltText="Filter Priority column" HeaderText="Priority" UniqueName="Priority" HeaderStyle-Width="55px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="act_step_ticket_num" FilterControlAltText="Filter column column" HeaderText="Ticket #" UniqueName="Ticketnum" AutoPostBackOnFilter="True"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="acct_number" FilterControlAltText="Filter column column" HeaderText="Account #" UniqueName="AcctNum"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="line_num" FilterControlAltText="Filter column column" HeaderText="Line #" UniqueName="LineNum"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="act_step_open_csr" FilterControlAltText="Filter column column" HeaderText="Open By" UniqueName="OpenBy"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="user_group_code" FilterControlAltText="Filter column column" HeaderText="Current<br />Group" UniqueName="CurrGrp"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="user_first" FilterControlAltText="Filter column column" HeaderText="Member" UniqueName="Member"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="act_code" FilterControlAltText="Filter column column" HeaderText="Action<br />Code" UniqueName="ActCode"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="status_desc" FilterControlAltText="Filter column column" HeaderText="Status" UniqueName="Status"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Open_DT" FilterControlAltText="Filter column column" HeaderText="Open<br />Date & Time" UniqueName="Open_DT" HeaderStyle-Width="88px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Phase_DT" FilterControlAltText="Filter column column" HeaderText="Phase<br />Date & Time" UniqueName="Phase_DT" HeaderStyle-Width="88px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Close_DT" FilterControlAltText="Filter column column" HeaderText="Actual Close<br />Date & Time" UniqueName="Close_DT" HeaderStyle-Width="88px"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="act_overall_due_status" FilterControlAltText="Filter column column" HeaderText="Close<br />Status" UniqueName="CloseStat"> </telerik:GridBoundColumn> </Columns> <EditFormSettings> <EditColumn FilterControlAltText="Filter EditCommandColumn column"> </EditColumn> </EditFormSettings> </MasterTableView> <FilterMenu EnableImageSprites="False"> </FilterMenu> <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default"> </HeaderContextMenu> </telerik:RadGrid> | function showToolTip(element, id) { |
| var tooltipManager = $find("<%= radToolTipManager.ClientID %>"); |
| //If the user hovers the image before the page has loaded, there is no manager created |
| if (!tooltipManager) return; |
| //Find the tooltip for this element if it has been created |
| var tooltip = tooltipManager.getToolTipByElement(element); |
| //Create a tooltip if no tooltip exists for such element |
| if (!tooltip) { |
| tooltip = tooltipManager.createToolTip(element); |
| //Use the fact that the image was named after a country |
| //Extract the country name from the image, and set it as the value to be supplied to the web-service |
| //var src = element.getAttribute("src", 2); |
| //var country = src.substring (src.lastIndexOf("/") + 1, src.lastIndexOf(".")); |
| alert(id); |
| tooltip.set_value(id); |
| } |
| tooltip.show(); |
| } |
| <telerik:RadToolTipManager ID="radToolTipManager" runat="server" Position="BottomRight" Animation="None" AutoTooltipify="false" |
| Skin="Hay" EnableEmbeddedSkins="false" EnableEmbeddedBaseStylesheet="false" AutoCloseDelay="0" ShowDelay="100" CssClass="tooltip" |
| Width="300" Height="200" OffsetX="10" OffsetY="10"> |
| <WebServiceSettings Method="GetToolTip" Path="/usercontrols/Tooltip.ascx" /> |
| </telerik:RadToolTipManager> |