I have a very basic implementation of a column total that is doubling the value. I have searched through the posts on here and most of them involve other routines that are causing the ItemDataBound to fire twice. I don't believe that's the problem with mine since it's a VERY simple design.
Can someone tell me what I might be doing wrong here? Here is the code behind:
And here is the grid call:
I'm using the RadAjaxManager for the grid, but I tried deleting all the code for the RadAjaxManager and my total was still double.
Thanks.
Can someone tell me what I might be doing wrong here? Here is the code behind:
| Imports System |
| Imports System.Data |
| Imports System.Data.SqlClient |
| Imports System.IO |
| Imports Telerik.Web.UI |
| Partial Class rpt_bistatus |
| Inherits System.Web.UI.Page |
| Private startFilter As String |
| Private endFilter As String |
| Private total As Double = 0 |
| Protected Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load |
| If Not Page.IsPostBack Then |
| startFilter = Request.QueryString("start") |
| endFilter = Request.QueryString("end") |
| End If |
| End Sub |
| Protected Sub Page_LoadComplete(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.LoadComplete |
| EmpID.Text = Master.loginID |
| End Sub |
| Protected Sub RadGrid1_NeedDataSource(ByVal source As Object, ByVal e As GridNeedDataSourceEventArgs) Handles RadGrid1.NeedDataSource |
| Dim sql As String = "" |
| If startFilter <> "" And endFilter <> "" Then |
| RadGrid1.DataSource = GetDataTable("SELECT [requests].[request_id], [requests].[title], [requests].[savings], FORMAT([requests].[release_date], 'mm/dd/yyyy') AS [release_date], IIF([requests].[complete_date] IS NULL, [requests].[due_date], [requests].[complete_date]) AS [report_date], [requests].[status], [tEmployee].[EmpFNm] + ' ' + [tEmployee].[EmpLNm] AS [analyst_nm] FROM [requests] LEFT JOIN [tEmployee] ON [tEmployee].[EmpID] = [requests].[analyst_id] WHERE (([requests].[status] <> 'Cancelled' AND [requests].[status] <> 'Deferred') AND (IIF([requests].[complete_date] IS NULL, [requests].[due_date], [requests].[complete_date]) <= #" & endFilter & "# AND IIF([requests].[complete_date] IS NULL, [requests].[due_date], [requests].[complete_date]) >= #" & startFilter & "#) AND ([requests].[request_type]='BI Request'))") |
| Else |
| RadGrid1.DataSource = GetDataTable("SELECT [requests].[request_id], [requests].[title], [requests].[savings], FORMAT([requests].[release_date], 'mm/dd/yyyy') AS [release_date], IIF([requests].[complete_date] IS NULL, [requests].[due_date], [requests].[complete_date]) AS [report_date], [requests].[status], [tEmployee].[EmpFNm] + ' ' + [tEmployee].[EmpLNm] AS [analyst_nm] FROM [requests] LEFT JOIN [tEmployee] ON [tEmployee].[EmpID] = [requests].[analyst_id] WHERE (([requests].[status] <> 'Cancelled' AND [requests].[status] <> 'Deferred') AND (IIF([requests].[complete_date] IS NULL, [requests].[due_date], [requests].[complete_date]) = #12/31/9999#) AND ([requests].[request_type]='BI Request'))") |
| End If |
| End Sub |
| Public Function GetDataTable(ByVal query As String) As DataTable |
| Dim connstr As String = ConfigurationManager.ConnectionStrings("LocalSqlServer").ToString |
| Dim dbconn As New OleDb.OleDbConnection(connstr) |
| Dim dbadapter As New System.Data.OleDb.OleDbDataAdapter(query, dbconn) |
| Dim oTable1 As New DataTable() |
| Try |
| dbadapter.Fill(oTable1) |
| dbadapter = Nothing |
| Finally |
| dbconn.Close() |
| End Try |
| Return oTable1 |
| End Function |
| Protected Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As GridItemEventArgs) Handles RadGrid1.ItemDataBound |
| If TypeOf e.Item Is GridDataItem Then |
| Dim dataItem As GridDataItem = CType(e.Item, GridDataItem) |
| If CType(dataItem.FindControl("lbl_savings"), Label).Text <> "" Then |
| total += Double.Parse(CType(dataItem.FindControl("lbl_savings"), Label).Text) |
| End If |
| End If |
| If TypeOf e.Item Is GridFooterItem Then |
| Dim footerItem As GridFooterItem = CType(e.Item, GridFooterItem) |
| footerItem("Savings").Text = total.ToString() |
| footerItem("Title").Text = "Total Annual Savings in Hours: " |
| End If |
| End Sub |
| End Class |
And here is the grid call:
| <telerik:RadGrid ID="RadGrid1" |
| EnableEmbeddedSkins="false" |
| Skin="EIS" |
| EnableAjax="false" |
| ImagesPath="images/grid/" |
| AllowSorting="true" |
| PageSize="25" |
| ShowFooter="true" |
| AllowPaging="false" |
| ShowGroupPanel="false" |
| GroupingEnabled="false" |
| OnNeedDataSource="RadGrid1_NeedDataSource" |
| OnItemDataBound="RadGrid1_ItemDataBound" |
| Width="950" |
| runat="server"> |
| <MasterTableView Name="master" CommandItemDisplay="None" DataKeyNames="request_id" Width="100%" HorizontalAlign="NotSet" AutoGenerateColumns="False" AllowSorting="true" NoMasterRecordsText="There are no Requests that match the criteria"> |
| <Columns> |
| <telerik:GridTemplateColumn HeaderText="Request #" DataField="request_id" UniqueName="request_id" SortExpression="request_id" Groupable="false"> |
| <ItemStyle Width="75" /> |
| <ItemTemplate> |
| <a href='request.aspx?id=<%# Eval("request_id") %>' style="cursor:pointer;"><asp:Label Width="65" CssClass="gridLabel" runat="server" ID="lbl_request_id" Text='<%# Eval("request_id") %>' /></a> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Purpose" UniqueName="title" SortExpression="title" Groupable="false"> |
| <ItemTemplate> |
| <asp:Label CssClass="gridLabel" runat="server" ID="lbl_title" Text='<%# Eval("title") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Savings" UniqueName="savings" DataField="savings" SortExpression="savings"> |
| <ItemStyle Width="65" /> |
| <ItemTemplate> |
| <asp:Label Width="60" CssClass="gridLabel" runat="server" ID="lbl_savings" Text='<%# Eval("savings") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Release Date" UniqueName="release_date" SortExpression="release_date" Groupable="false"> |
| <ItemStyle Width="90" /> |
| <ItemTemplate> |
| <asp:Label Width="85" CssClass="gridLabel" runat="server" ID="lbl_release_date" Text='<%# Eval("release_date") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Status" UniqueName="status" DataField="status" SortExpression="status" Groupable="false"> |
| <ItemStyle Width="65" /> |
| <ItemTemplate> |
| <asp:Label Width="60" CssClass="gridLabel" runat="server" ID="lbl_status" Text='<%# Eval("status") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| <telerik:GridTemplateColumn HeaderText="Assigned To" UniqueName="analyst_nm" DataField="analyst_nm" SortExpression="analyst_nm" Groupable="false"> |
| <ItemStyle Width="105" /> |
| <ItemTemplate> |
| <asp:Label Width="100" CssClass="gridLabel" runat="server" ID="lbl_analyst_nm" Text='<%# Eval("analyst_nm") %>' /> |
| </ItemTemplate> |
| </telerik:GridTemplateColumn> |
| </Columns> |
| </MasterTableView> |
| <ClientSettings AllowDragToGroup="True" AllowGroupExpandCollapse="True"> |
| <Selecting AllowRowSelect="True" /> |
| <Scrolling AllowScroll="false" UseStaticHeaders="True" /> |
| <ClientEvents OnGridCreated="GridCreated" /> |
| </ClientSettings> |
| <PagerStyle Mode="NextPrevAndNumeric" /> |
| </telerik:RadGrid> |
I'm using the RadAjaxManager for the grid, but I tried deleting all the code for the RadAjaxManager and my total was still double.
Thanks.
