or


RadGrid1.ClientSettings.AllowColumnsReorder = TrueHi,
I am using below source code the grid is working very slow. But the data from DB is fetching very fast less then a sec.
Please suggest for a fix! Thanks
<%@ Page Language="VB" MasterPageFile="~/Views/Common/PTRMasterPage.master" AutoEventWireup="false" CodeFile="ActivityMaster.aspx.vb" Inherits="Views_Masters_ActivityMaster" Title="Activity Master" StylesheetTheme="PetrofacSkin" %><%@ Register Namespace="PTRCustomClasses" TagPrefix="custom" %><%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %><asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> <script src="../../JScript/jquery-1.7.2.min.js" type="text/javascript"></script> <script src="../../JScript/jquery-ui-1.8.19.custom.min.js" type="text/javascript"></script> <script src="../../JScript/jquery.history.js" type="text/javascript"></script> <script src="../../JScript/jquery.tooltip.js" type="text/javascript"></script> <script src="../../JScript/scriptbreaker-multiple-accordion.js" type="text/javascript"></script> <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> <script language="javascript" type="text/javascript"> function onRequestStart(sender, args) { //debugger; if ((args.get_eventTarget().indexOf("ExportToExcel") > 0)) args.set_enableAjax(false); } </script> <style type="text/css"> .AjaxLoading { background-repeat: no-repeat; background-position: center; } </style> </telerik:RadCodeBlock> <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> <AjaxSettings> <telerik:AjaxSetting AjaxControlID="ddlMethodology"> <UpdatedControls> <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> <telerik:AjaxUpdatedControl ControlID="PanelStatusLabel" /> </UpdatedControls> </telerik:AjaxSetting> </AjaxSettings> </telerik:RadAjaxManager> <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server" Height="75px" Width="75px" Transparency="5"> <img style="margin-top: 350px;" alt="Loading..." src="../../Images/Telerik Images/Ajax/loading7.gif" /> <%-- <asp:Image id="Image1" runat="server" style="margin-top: 350px;" ImageUrl="~/Images/Telerik%20Images/Ajax/loading3.gif" alternatetext ="Loading..." > ImageUrl="~/Ajax/Img/loading1.gif" </asp:Image> --%> </telerik:RadAjaxLoadingPanel><%-- <telerik:RadAjaxLoadingPanel ID="LoadingPanel1" runat="server"> </telerik:RadAjaxLoadingPanel>--%> <div id="divCont01" style="display: block; width: 99%"> <table cellpadding="0" cellspacing="5"> <tr> <td width="15%"> <asp:Label ID="Label5" CssClass="labelStyle" Font-Bold="true" Text="Methodology" runat="server"></asp:Label> </td> <td width="75%"> <asp:DropDownList ID="ddlMethodology" runat="server" AppendDataBoundItems="True" TabIndex="3" CssClass="dropdownStylePTR" AutoPostBack="True"> </asp:DropDownList> </td> <%-- <td width="10%"> <asp:Button ID="btnExport2Excel" runat="server" Text="Export Activiites to Excel" CssClass="buttonStyle" Visible="True" /> <br /> </td>--%> </tr> </table> </div> <br /> <telerik:RadAjaxPanel ID="radAjaxMainPanel" runat="server" LoadingPanelID="RadAjaxLoadingPanel1" ClientEvents-OnRequestStart="onRequestStart"> <div id="divCont02" style="display: block; width: 99%"> <table style="width: 100%;"> <tr> <td style="vertical-align: top; padding-top: 0px; padding-bottom: 0px; padding-left: 0px; border-top-width: 0px;"> <telerik:RadGrid ID="RadGrid1" runat="server" AllowPaging="True" AllowSorting="True" Skin="Office2007" AllowFilteringByColumn="True" ShowStatusBar="false" PageSize="12" Width="95%"> <PagerStyle Mode="NextPrevNumericAndAdvanced" AlwaysVisible="true" /> <MasterTableView BorderWidth="0" DataKeyNames="ACT_ID" EditMode="PopUp" AutoGenerateColumns="False" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordText="Add New Activity"> <NoRecordsTemplate> <div style="width: 300px;"> There are no records to display</div> </NoRecordsTemplate> <CommandItemTemplate> <table width="100%"> <tr> <td style="text-align: left; width: 30%"> <img style="border: 0px" alt="" src="../../Images/Telerik%20Images/AddRecord.gif" /> <asp:LinkButton ID="btnAdd" Text="Add New Activity" CommandName="InitInsert" runat="server"> </asp:LinkButton> </td> <td style="text-align: right;"> <asp:LinkButton runat="server" ID="LinkButton1" Text="Clear Filters" CommandName="ClearFilters" /> <img style="border: 0px" alt="" src="../../Images/Telerik%20Images/Refresh.gif" /> <asp:LinkButton ID="btnRefresh" Text="Refresh" CommandName="Rebind" runat="server"> </asp:LinkButton> <asp:Image ID="Image1" runat="server" AlternateText="Add" ImageUrl="~/Images/Telerik Images/GridExportToExcel.gif" /> <asp:LinkButton ID="lnkBtnExportToExcel" CssClass="lnkMedium" runat="server" Text="Export to Excel" OnClick="btnExport2Excel_Click"></asp:LinkButton> </td> </tr> </table> </CommandItemTemplate> <Columns> <telerik:GridButtonColumn UniqueName="EditColumn" Text="Edit" CommandName="Edit"> <ItemStyle Wrap="false" Width="42px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="42px" /> </telerik:GridButtonColumn> <telerik:GridButtonColumn UniqueName="DeleteColumn" Text="Delete" CommandName="Delete" ConfirmText="Are you sure to Delete the Record?'" ConfirmDialogType="RadWindow" ConfirmTitle="Delete"> <ItemStyle Wrap="false" Width="55px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="55px" /> </telerik:GridButtonColumn> <telerik:GridBoundColumn DataField="ACT_CODE" HeaderText="Act Code" SortExpression="ACT_CODE" UniqueName="ACT_CODE" FilterListOptions="VaryByDataType" FilterControlWidth="65%"> <ItemStyle Wrap="false" Width="110px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="110px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ACT_DESC" HeaderText="Act Description" SortExpression="ACT_DESC" UniqueName="ACT_DESC" FilterListOptions="VaryByDataType" FilterControlWidth="90%"> <ItemStyle Wrap="false" Width="350px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="350px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ACT_WF" DataType="System.Decimal" HeaderText="Act Wt.Factor" SortExpression="ACT_WF" UniqueName="ACT_WF" FilterListOptions="VaryByDataType" FilterControlWidth="74%"> <ItemStyle Wrap="false" Width="115px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="115px" /> </telerik:GridBoundColumn> <custom:rgCustomCol_Filter_Dropdown HeaderText="Department" DataField="DEPT_DESC" SortExpression="DEPT_DESC" UniqueName="DEPT_DESC_FILTER" HeaderStyle-HorizontalAlign="Center"> <ItemStyle Wrap="false" Width="142px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="142px" /> </custom:rgCustomCol_Filter_Dropdown> <custom:rgCustomCol_Filter_Dropdown HeaderText="Milestone" DataField="MLSTN_NAME" SortExpression="MLSTN_NAME" UniqueName="MLSTN_NAME_FILTER"> <ItemStyle Wrap="false" Width="499px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="499px" /> </custom:rgCustomCol_Filter_Dropdown> <telerik:GridDateTimeColumn DataField="ACT_EARLY_START_DT" HeaderText="Early Start Dt" SortExpression="ACT_EARLY_START_DT" UniqueName="ACT_EARLY_START_DT" FilterControlWidth="75%" DataFormatString="{0:dd/MM/yyyy}"> <ItemStyle Wrap="false" Width="105px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="105px" /> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="ACT_EARLY_FINISH_DT" DataFormatString="{0:dd/MM/yyyy}" DataType="System.DateTime" HeaderText="Early Finish Dt" SortExpression="ACT_EARLY_FINISH_DT" UniqueName="ACT_EARLY_FINISH_DT" FilterListOptions="VaryByDataType" FilterControlWidth="75%" PickerType="DatePicker"> <ItemStyle Wrap="false" Width="105px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="105px" /> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn DataField="ACT_EARNED_WT" DataType="System.Decimal" HeaderText="Earned Wt" SortExpression="ACT_EARNED_WT" UniqueName="ACT_EARNED_WT" FilterListOptions="VaryByDataType" FilterControlWidth="50%"> <ItemStyle Wrap="false" Width="82px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="82px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ACT_PROGRESS_PERC" DataType="System.Decimal" HeaderText="% Prog." SortExpression="ACT_PROGRESS_PERC" UniqueName="ACT_PROGRESS_PERC" FilterListOptions="VaryByDataType" FilterControlWidth="50%"> <ItemStyle Wrap="false" Width="65px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="65px" /> </telerik:GridBoundColumn> <telerik:GridDateTimeColumn DataField="Start_DT1" HeaderText="Start DT1" SortExpression="Start_DT1" UniqueName="Start_DT1" FilterControlWidth="75%" DataFormatString="{0:dd/MM/yyyy}"> <ItemStyle Wrap="false" Width="78px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="78px" /> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="END_DT1" HeaderText="End DT1" SortExpression="END_DT1" UniqueName="END_DT1" ItemStyle-Wrap="true" FilterControlWidth="75%" DataFormatString="{0:dd/MM/yyyy}"> <ItemStyle Wrap="false" Width="78px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="78px" /> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="Start_DT2" HeaderText="Start DT2" SortExpression="Start_DT2" UniqueName="Start_DT2" FilterControlWidth="75%" DataFormatString="{0:dd/MM/yyyy}"> <ItemStyle Wrap="false" Width="78px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="78px" /> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="END_DT2" HeaderText="End DT2" SortExpression="END_DT2" UniqueName="END_DT2" FilterControlWidth="75%" DataFormatString="{0:dd/MM/yyyy}"> <ItemStyle Wrap="false" Width="78px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="78px" /> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="Start_DT3" HeaderText="Start DT3" SortExpression="Start_DT3" UniqueName="Start_DT3" FilterControlWidth="75%" DataFormatString="{0:dd/MM/yyyy}"> <ItemStyle Wrap="false" Width="78px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="78px" /> </telerik:GridDateTimeColumn> <telerik:GridDateTimeColumn DataField="END_DT3" HeaderText="End DT3" SortExpression="END_DT3" UniqueName="END_DT3" FilterControlWidth="75%" DataFormatString="{0:dd/MM/yyyy}"> <ItemStyle Wrap="false" Width="78px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="78px" /> </telerik:GridDateTimeColumn> <telerik:GridBoundColumn DataField="WBS_Code" HeaderText="WBS Code" SortExpression="WBS_Code" UniqueName="WBS_Code" FilterControlWidth="75%"> <ItemStyle Wrap="false" Width="100px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="100px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="ServiceMH" HeaderText="ServiceMH" SortExpression="ServiceMH" UniqueName="ServiceMH" FilterControlWidth="75%"> <ItemStyle Wrap="false" Width="100px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="100px" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Budget_Cost" HeaderText="Budget Cost" SortExpression="Budget_Cost" UniqueName="Budget_Cost" FilterControlWidth="75%"> <ItemStyle Wrap="false" Width="100px" /> <HeaderStyle HorizontalAlign="Left" Wrap="false" Font-Size="8pt" Width="100px" /> </telerik:GridBoundColumn> </Columns> <EditFormSettings PopUpSettings-Width="48%" EditFormType="Template" ColumnNumber="2" CaptionDataField="ACT_CODE" EditColumn-HeaderText="Activity Details:" CaptionFormatString="{0}" PopUpSettings-Modal="true"> <FormTemplate> <table id="Table1" width="100%" cellspacing="1" cellpadding="1" border="0"> <tr> <td> Activity Code: </td> <td> <asp:TextBox ID="txtActCode" runat="server" Text='<%# Eval("ACT_CODE") %>' MaxLength="20" Width="80" TabIndex="1" CssClass="textboxStyle"> </asp:TextBox> <span id="spanrfd1" style="color: red;">*</span> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txtActCode" ErrorMessage="Activity Code is required!!" runat="server" Display="Dynamic" Text="*"> </asp:RequiredFieldValidator> </td> </tr> <tr> <td> Description: </td> <td> <asp:TextBox ID="txtActDesc" runat="server" Text='<%# Eval("ACT_DESC") %>' TabIndex="2" MaxLength="255" Width="255" CssClass="multitextboxStyle" TextMode="MultiLine"> </asp:TextBox> <span id="span1" style="color: red;">*</span> <asp:RequiredFieldValidator ID="RequiredFieldValidator2" ControlToValidate="txtActDesc" ErrorMessage="Activity Description is required!!" runat="server" Display="Dynamic" Text="*"> </asp:RequiredFieldValidator> </td> </tr> <tr> <td> Weight Factor: </td> <td> <asp:TextBox ID="txtActWf" runat="server" Text='<%# Eval("ACT_WF") %>' MaxLength="9" Width="60" TabIndex="3" CssClass="textboxStyle"> </asp:TextBox> <span id="span2" style="color: red;">*</span> <asp:RequiredFieldValidator ID="RequiredFieldValidator3" ControlToValidate="txtActWf" ErrorMessage="Activity Weight Factor is required!!" runat="server" Display="Dynamic" Text="*"> </asp:RequiredFieldValidator> <asp:CompareValidator runat="server" ID="comvali1" ControlToValidate="txtActWf" Type="Double" Operator="LessThanEqual" ValueToCompare="999999999" ErrorMessage="Weight Factor Should be a Positive Number & Limited Upto 9 Digits!!" Text="Invalid!!" Display="Dynamic"></asp:CompareValidator> <asp:CompareValidator runat="server" ID="comvali2" ControlToValidate="txtActWf" Type="Double" Operator="GreaterThanEqual" ValueToCompare="0" ErrorMessage="Weight Factor Should be a Positive Number & Limited Upto 9 Digits!!" Text="Invalid!!" Display="Dynamic"></asp:CompareValidator> </td> </tr> <tr> <td> Department: </td> <td> <asp:DropDownList ID="ddlDept" runat="server" Style="z-index: 1;" SelectedValue='<%# Bind("DEPT_ID") %>' AppendDataBoundItems="True" TabIndex="4" CssClass="dropdownStyle"> <asp:ListItem Selected="True" Text="Select" Value=""></asp:ListItem> </asp:DropDownList> <span id="span3" style="color: red;">*</span> <asp:RequiredFieldValidator ID="RequiredFieldValidator4" ControlToValidate="ddlDept" ErrorMessage="Department is required!!" runat="server" Display="Dynamic" Text="*"> </asp:RequiredFieldValidator> </td> </tr> <tr> <td> MileStone: </td> <td> <asp:DropDownList ID="ddlMileStone" runat="server" SelectedValue='<%# Bind("MLSTN_ID") %>' AppendDataBoundItems="True" TabIndex="5" CssClass="dropdownStyle"> <asp:ListItem Selected="True" Text="Select" Value=""></asp:ListItem> </asp:DropDownList> <span id="span4" style="color: red;">*</span> <asp:RequiredFieldValidator ID="RequiredFieldValidator5" ControlToValidate="ddlMileStone" ErrorMessage="Milestone is required!!" runat="server" Display="Dynamic" Text="*"> </asp:RequiredFieldValidator> </td> </tr> <tr> <td> Early Start Date: </td> <td> <%--SelectedDate='<%# IIF (TypeOf Container is GridEditFormInsertItem, Now.Today , Eval("ACT_EARLY_START_DT")) %>'--%> <telerik:RadDatePicker ID="RdpESdt" runat="server" SelectedDate='<%# IIf(TypeOf Container Is GridEditFormInsertItem, Now.Today, IIf(IsDBNull(Eval("ACT_EARLY_START_DT")), Nothing, Eval("ACT_EARLY_START_DT"))) %>'> <DateInput ID="DateInput2" runat="server" TabIndex="6" DateFormat="dd/MM/yyyy"> </DateInput> </telerik:RadDatePicker> <%-- <span id="span5" style="color: red;">*</span> <asp:RequiredFieldValidator ID="RequiredFieldValidator6" ControlToValidate="RdpESdt" ErrorMessage="Early Start Date is required" runat="server" Display="Dynamic" Text="*"> </asp:RequiredFieldValidator>--%> </td> </tr> <tr> <td> Early Finish Date: </td> <td> <telerik:RadDatePicker ID="RdpEFdt" runat="server" TabIndex="7" SelectedDate='<%# IIf(TypeOf Container Is GridEditFormInsertItem, Now.Today, IIf(IsDBNull(Eval("ACT_EARLY_FINISH_DT")), Nothing, Eval("ACT_EARLY_FINISH_DT"))) %>'> <DateInput ID="DateInput1" runat="server" DateFormat="dd/MM/yyyy"> </DateInput> </telerik:RadDatePicker> <%-- <span id="span6" style="color: red;">*</span> <asp:RequiredFieldValidator ID="RequiredFieldValidator7" ControlToValidate="RdpEFdt" ErrorMessage="Early Finish Date is required!!" runat="server" Display="Dynamic" Text="*"> </asp:RequiredFieldValidator> <asp:CompareValidator ID="CompareValidator1" runat="server" ErrorMessage="Early Finish Date Should be More than Early Start Date!!" ControlToCompare="RdpESdt" ControlToValidate="RdpEFdt" Operator="GreaterThan" Text="Invalid!!" Display="Dynamic"> </asp:CompareValidator>--%> </td> </tr> </table> <table style="width: 100%"> <tr> <td style="text-align: center" colspan="2"> <asp:Button ID="Button1" Text='<%# IIF (TypeOf Container is GridEditFormInsertItem, "Insert", "Update") %>' runat="server" CommandName='<%# Iif (TypeOf Container is GridEditFormInsertItem, "PerformInsert", "Update") %>' CssClass="gridButtonColStyle"></asp:Button> <asp:Button ID="Button2" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel" CssClass="gridButtonColStyle"></asp:Button> </td> </tr> </table> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="true" ShowSummary="false" /> </FormTemplate> <PopUpSettings Modal="True"></PopUpSettings> </EditFormSettings> </MasterTableView> <HeaderStyle Height="1%" /> <ValidationSettings CommandsToValidate="PerformInsert,Update" /> <StatusBarSettings LoadingText="Loading... Please wait!" ReadyText="Ready.." /> <ExportSettings> <Pdf FontType="Subset" PaperSize="Letter" /> <Excel Format="ExcelML" FileExtension=".xls" /> <Csv ColumnDelimiter="Colon" RowDelimiter="NewLine" /> </ExportSettings> <ClientSettings AllowColumnsReorder="True"> <Selecting AllowRowSelect="True" /> <Scrolling AllowScroll="true" SaveScrollPosition="true" UseStaticHeaders="True" ScrollHeight="250px" /> <%-- <Resizing AllowColumnResize="true" />--%> </ClientSettings> <FilterMenu EnableTheming="True"> <CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> </FilterMenu> </telerik:RadGrid> </td> </tr> </table> </div> </telerik:RadAjaxPanel> <telerik:RadAjaxPanel ID="PanelStatusLabel" runat="server"> </telerik:RadAjaxPanel></asp:Content><%@ Control Language="C#" AutoEventWireup="true" CodeFile="InputFormFundsBreakdown.ascx.cs"Inherits="Controls_InputFormFundsBreakdown" %><table align="left" cellpadding="5" width="100%"> <tr> <td align="center" colspan="2"> <h3> Funds Breakdown <asp:Image ID="imgFundsHelp" runat="server" ImageUrl="~/Images/help.png" /> <telerik:RadToolTip ID="tipFundsHelp" runat="server" HideEvent="LeaveTargetAndToolTip" Position="TopRight" TargetControlID="imgFundsHelp"> Help goes here </telerik:RadToolTip> </h3> </td> </tr> <tr> <td colspan="2"> <asp:Label ID="errFundsMessage" runat="server" ForeColor="Red"></asp:Label> </td> </tr> <tr> <td colspan="2"> <telerik:RadGrid ID="grdFunds" runat="server" AutoGenerateColumns="False" OnDataBound="grdFunds_DataBound" OnNeedDataSource="grdFunds_NeedDataSource"> <MasterTableView DataKeyNames="RowNumber" AlternatingItemStyle-BackColor="#DAE2E8"> <ItemStyle VerticalAlign="Top" /> <Columns> <telerik:GridTemplateColumn HeaderText="Fund Name"> <ItemTemplate> <telerik:RadTextBox ID="txtFundName" runat="server" MaxLength="100" Width="85px" Text='<%# Eval("FundName")%>'> </telerik:RadTextBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="* Fund Number"> <ItemTemplate> <telerik:RadTextBox ID="txtFundNumber" runat="server" Width="85px" MaxLength="100" Text='<%# Eval("FundNumber")%>'> <ClientEvents OnKeyPress="NumericOnly" /> </telerik:RadTextBox> <br /> <asp:Label ID="errFundNumber" runat="server" ForeColor="Red"></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="* Account"> <ItemTemplate> <telerik:RadTextBox ID="txtAccount" runat="server" Width="85px" MaxLength="100" Text='<%# Eval("Account")%>'> </telerik:RadTextBox> <br /> <asp:Label ID="errAccount" runat="server" ForeColor="Red"></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Subledger"> <ItemTemplate> <telerik:RadTextBox ID="txtSubledger" runat="server" Width="85px" MaxLength="100" Text='<%# Eval("Subledger")%>'> <ClientEvents OnKeyPress="NumericOnly" /> </telerik:RadTextBox> <br /> <asp:Label ID="errSubledger" runat="server" ForeColor="Red"></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="T Code"> <ItemTemplate> <asp:HiddenField ID="hdnTCode" runat="server" Value='<%# Eval("TCode")%>' /> <telerik:RadDropDownList ID="ddlTCode" runat="server" Width="40px"> <Items> <telerik:DropDownListItem Value="" Text=" " /> <telerik:DropDownListItem Value="W" Text="W" /> <telerik:DropDownListItem Value="A" Text="A" /> </Items> </telerik:RadDropDownList> <br /> <asp:Label ID="errTCode" runat="server" ForeColor="Red"></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="* Amount"> <ItemTemplate> <telerik:RadNumericTextBox ID="txtFundAmount" runat="server" DataType="System.Decimal" Width="85px" MaxLength="100" NumberFormat-DecimalDigits="2" Type="Currency" DbValue='<%# Eval("Amount")%>' IncrementSettings-InterceptMouseWheel="False"> </telerik:RadNumericTextBox><br /> <asp:Label ID="errFundAmount" runat="server" ForeColor="Red"></asp:Label> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn HeaderText="Memo"> <ItemTemplate> <telerik:RadTextBox ID="txtFundMemo" runat="server" Width="145px" Text='<%# Eval("Memo")%>'> </telerik:RadTextBox> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridTemplateColumn> <ItemTemplate> <telerik:RadButton ID="btnDeleteFundLine" runat="server" Text="Delete" CssClass="classDeleteImage" HoveredCssClass="classDeleteHoveredImage" PressedCssClass="classDeletePressedImage" OnCommand="btnDeleteFundLine_Command" CommandArgument='<%# Eval("RowNumber")%>'> <Image EnableImageButton="true" /> </telerik:RadButton> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid> </td> </tr> <tr> <td colspan="2"> </td> </tr> <tr> <td> <telerik:RadNumericTextBox ID="txtNumberOfRows" runat="server" Width="50px" MinValue="1" ShowSpinButtons="true" DataType="System.Int32" NumberFormat-DecimalDigits="0" Value="1"> </telerik:RadNumericTextBox> <telerik:RadButton ID="btnAddFundRow" runat="server" Font-Bold="True" Icon-PrimaryIconCssClass="rbAdd" Text="Add Rows" OnClick="btnAddFundRow_Click"> </telerik:RadButton> </td> <td align="right"> <asp:Label ID="lblFundsTotal" runat="server" Font-Bold="true"></asp:Label> <telerik:RadButton ID="btnCalculateFunds" runat="server" Font-Bold="True" Text="Calculate" Icon-PrimaryIconUrl="~/Images/calc.jpg" OnClick="btnCalculateFunds_Click"> </telerik:RadButton> </td> </tr></table>using System;using System.Data;using System.Web.UI.WebControls;using Telerik.Web.UI;using dsCashTransmittalTableAdapters;public partial class Controls_InputFormFundsBreakdown : System.Web.UI.UserControl{ public DataTable FundsTable { get; private set; } protected void Page_Load(object sender, EventArgs e) { if (ViewState["FundsTable"] == null) { FundsTable = DefineFundsDataTable(); AddFiveRows(); } else { FundsTable = (DataTable)ViewState["FundsTable"]; } } public decimal CalculateTotal() { decimal totalAmount = 0; try { foreach (GridDataItem item in grdFunds.Items) { RadNumericTextBox txtFundAmount = (RadNumericTextBox)item.FindControl("txtFundAmount"); totalAmount += Convert.ToDecimal(txtFundAmount.Value); } } catch (Exception) { totalAmount = 0; } return totalAmount; } public int CountEntries() { int cnt = 0; try { foreach (GridDataItem item in grdFunds.Items) { RadNumericTextBox txtFundAmount = (RadNumericTextBox)item.FindControl("txtFundAmount"); if (txtFundAmount.Value != 0) { cnt++; } } } catch (Exception) { cnt = 0; } return cnt; } public void ResetValidation() { errFundsMessage.Text = ""; foreach (GridDataItem item in grdFunds.Items) { Label errFundNumber = (Label)item.FindControl("errFundNumber"); errFundNumber.Text = ""; Label errAccount = (Label)item.FindControl("errAccount"); errAccount.Text = ""; Label errSubledger = (Label)item.FindControl("errSubledger"); errSubledger.Text = ""; Label errTCode = (Label)item.FindControl("errTCode"); errTCode.Text = ""; Label errFundAmount = (Label)item.FindControl("errFundAmount"); errFundAmount.Text = ""; } ShowCalculatedTotals(); } public void ShowCalculatedTotals() { lblFundsTotal.Text = "Total: " + CalculateTotal().ToString("C"); } public bool ValidateForm(bool valid, ref string logMsg, bool twoFundsRequired, bool oneFundRequired) { bool hasFund = false; bool num = false; bool acct = false; bool tcode = false; bool sub = false; //bool amt = false; foreach (GridDataItem item in grdFunds.Items) { RadTextBox txtFundName = (RadTextBox)item.FindControl("txtFundName"); RadTextBox txtFundNumber = (RadTextBox)item.FindControl("txtFundNumber"); Label errFundNumber = (Label)item.FindControl("errFundNumber"); RadTextBox txtAccount = (RadTextBox)item.FindControl("txtAccount"); Label errAccount = (Label)item.FindControl("errAccount"); RadTextBox txtSubledger = (RadTextBox)item.FindControl("txtSubledger"); Label errSubledger = (Label)item.FindControl("errSubledger"); RadDropDownList ddlTCode = (RadDropDownList)item.FindControl("ddlTCode"); Label errTCode = (Label)item.FindControl("errTCode"); RadNumericTextBox txtFundAmount = (RadNumericTextBox)item.FindControl("txtFundAmount"); //Label errFundAmount = (Label)item.FindControl("errFundAmount"); RadTextBox txtFundMemo = (RadTextBox)item.FindControl("txtFundMemo"); if (txtFundAmount.Text == string.Empty) { txtFundAmount.Value = 0; } if (txtFundName.Text != string.Empty || txtFundNumber.Text != string.Empty || txtAccount.Text != string.Empty || txtSubledger.Text != string.Empty || ddlTCode.SelectedValue != string.Empty || txtFundAmount.Value != 0 || txtFundMemo.Text != string.Empty) { if (txtFundAmount.Value == 0) { //errFundAmount.Text = "Required"; //amt = true; //txtFundAmount.Focus(); //valid = false; } else { hasFund = true; if (txtSubledger.Text != string.Empty && ddlTCode.SelectedValue == string.Empty) { errTCode.Text = "Required"; tcode = true; ddlTCode.Focus(); valid = false; } else if (ddlTCode.SelectedValue != string.Empty && txtSubledger.Text == string.Empty) { errSubledger.Text = "Required"; sub = true; txtSubledger.Focus(); valid = false; } if (txtAccount.Text == string.Empty) { errAccount.Text = "Required"; acct = true; txtAccount.Focus(); valid = false; } if (txtFundNumber.Text == string.Empty) { errFundNumber.Text = "Required"; num = true; txtFundNumber.Focus(); valid = false; } } } } if (!hasFund && oneFundRequired) { if (twoFundsRequired) { errFundsMessage.Text = "Enter at least two funds"; logMsg = "<li><b>At least two Funds</b> is Required</li>" + logMsg; } else { errFundsMessage.Text = "Enter at least one fund"; logMsg = "<li><b>At least one Fund</b> is Required</li>" + logMsg; } grdFunds.Focus(); valid = false; } else { //if (amt) //{ // logMsg = "<li><b>Fund Amount</b> is Required</li>" + logMsg; //} if (tcode) { logMsg = "<li><b>Fund T Code</b> is Required</li>" + logMsg; } if (sub) { logMsg = "<li><b>Fund Subledger</b> is Required</li>" + logMsg; } if (acct) { logMsg = "<li><b>Fund Account</b> is Required</li>" + logMsg; } if (num) { logMsg = "<li><b>Fund Number</b> is Required</li>" + logMsg; } UpdateFundTableFromGrid(); } return valid; } public void AddGridErrorMessage(string msg) { errFundsMessage.Text = msg; } public void ResetForm() { //FundsTable = DefineFundsDataTable(); //BindFundGrid(); ShowCalculatedTotals(); } public void LoadForm(CTCommonRequests req) { FundsTable = LoadFundsDataSource(req.GetCTFundsBreakdown()); AddFiveRows(); FillFundFields(); ShowCalculatedTotals(); } public void LoadTemplate(int templateID) { TemplateFunds_vTableAdapter taFund = new TemplateFunds_vTableAdapter(); FundsTable = LoadFundsTemplateDataSource(taFund.GetDataByTemplateID(templateID)); AddFiveRows(); FillFundFields(); ShowCalculatedTotals(); } public void UpdateFundTableFromGrid() { FundsTable = DefineFundsDataTable(); foreach (GridDataItem item in grdFunds.Items) { RadNumericTextBox txtFundAmount = (RadNumericTextBox)item.FindControl("txtFundAmount"); if (Convert.ToDecimal(txtFundAmount.Value) != 0) { DataRow row = FundsTable.NewRow(); row["RowNumber"] = item.GetDataKeyValue("RowNumber").ToString(); RadTextBox txtFundName = (RadTextBox)item.FindControl("txtFundName"); row["FundName"] = txtFundName.Text; RadTextBox txtFundNumber = (RadTextBox)item.FindControl("txtFundNumber"); row["FundNumber"] = txtFundNumber.Text; RadTextBox txtAccount = (RadTextBox)item.FindControl("txtAccount"); row["Account"] = txtAccount.Text; RadTextBox txtSubledger = (RadTextBox)item.FindControl("txtSubledger"); row["Subledger"] = txtSubledger.Text; RadDropDownList ddlTCode = (RadDropDownList)item.FindControl("ddlTCode"); row["TCode"] = ddlTCode.SelectedValue; row["Amount"] = Convert.ToDecimal(txtFundAmount.Value); RadTextBox txtFundMemo = (RadTextBox)item.FindControl("txtFundMemo"); row["Memo"] = txtFundMemo.Text; FundsTable.Rows.Add(row); } } } public void UpdateTemplateFundTableFromGrid() { FundsTable = DefineFundsDataTable(); foreach (GridDataItem item in grdFunds.Items) { RadTextBox txtFundName = (RadTextBox)item.FindControl("txtFundName"); RadTextBox txtFundNumber = (RadTextBox)item.FindControl("txtFundNumber"); RadTextBox txtAccount = (RadTextBox)item.FindControl("txtAccount"); RadTextBox txtSubledger = (RadTextBox)item.FindControl("txtSubledger"); RadDropDownList ddlTCode = (RadDropDownList)item.FindControl("ddlTCode"); RadNumericTextBox txtFundAmount = (RadNumericTextBox)item.FindControl("txtFundAmount"); RadTextBox txtFundMemo = (RadTextBox)item.FindControl("txtFundMemo"); if (txtFundName.Text.Trim() != string.Empty || txtFundNumber.Text.Trim() != string.Empty || txtAccount.Text.Trim() != string.Empty || txtSubledger.Text.Trim() != string.Empty || (ddlTCode.SelectedIndex > -1 && ddlTCode.SelectedValue != "") || txtFundMemo.Text.Trim() != string.Empty) { DataRow row = FundsTable.NewRow(); row["RowNumber"] = item.GetDataKeyValue("RowNumber").ToString(); row["FundName"] = txtFundName.Text; row["FundNumber"] = txtFundNumber.Text; row["Account"] = txtAccount.Text; row["Subledger"] = txtSubledger.Text; row["TCode"] = ddlTCode.SelectedValue; row["Amount"] = Convert.ToDecimal(txtFundAmount.Value); row["Memo"] = txtFundMemo.Text; FundsTable.Rows.Add(row); } } } protected void grdFunds_DataBound(object sender, EventArgs e) { ShowCalculatedTotals(); } protected void btnAddFundRow_Click(object sender, EventArgs e) { ResetValidation(); FundsTable = DefineFundsDataTable(); foreach (GridDataItem item in grdFunds.Items) { DataRow row = FundsTable.NewRow(); row["RowNumber"] = item.GetDataKeyValue("RowNumber").ToString(); RadTextBox txtFundName = (RadTextBox)item.FindControl("txtFundName"); row["FundName"] = txtFundName.Text; RadTextBox txtFundNumber = (RadTextBox)item.FindControl("txtFundNumber"); row["FundNumber"] = txtFundNumber.Text; RadTextBox txtAccount = (RadTextBox)item.FindControl("txtAccount"); row["Account"] = txtAccount.Text; RadTextBox txtSubledger = (RadTextBox)item.FindControl("txtSubledger"); row["Subledger"] = txtSubledger.Text; RadDropDownList ddlTCode = (RadDropDownList)item.FindControl("ddlTCode"); row["TCode"] = ddlTCode.SelectedValue; RadNumericTextBox txtFundAmount = (RadNumericTextBox)item.FindControl("txtFundAmount"); row["Amount"] = Convert.ToDecimal(txtFundAmount.Value); RadTextBox txtFundMemo = (RadTextBox)item.FindControl("txtFundMemo"); row["Memo"] = txtFundMemo.Text; FundsTable.Rows.Add(row); } for (int x = 0; x < txtNumberOfRows.Value; x++) { FundsTable = AddFundsRow(FundsTable); } grdFunds.Rebind(); FillFundFields(); } protected void btnDeleteFundLine_Command(object sender, CommandEventArgs e) { int rowNumber = Convert.ToInt32(e.CommandArgument); ResetValidation(); FundsTable = DefineFundsDataTable(); foreach (GridDataItem item in grdFunds.Items) { DataRow row = FundsTable.NewRow(); row["RowNumber"] = item.GetDataKeyValue("RowNumber").ToString(); RadTextBox txtFundName = (RadTextBox)item.FindControl("txtFundName"); row["FundName"] = txtFundName.Text; RadTextBox txtFundNumber = (RadTextBox)item.FindControl("txtFundNumber"); row["FundNumber"] = txtFundNumber.Text; RadTextBox txtAccount = (RadTextBox)item.FindControl("txtAccount"); row["Account"] = txtAccount.Text; RadTextBox txtSubledger = (RadTextBox)item.FindControl("txtSubledger"); row["Subledger"] = txtSubledger.Text; RadDropDownList ddlTCode = (RadDropDownList)item.FindControl("ddlTCode"); row["TCode"] = ddlTCode.SelectedValue; RadNumericTextBox txtFundAmount = (RadNumericTextBox)item.FindControl("txtFundAmount"); row["Amount"] = Convert.ToDecimal(txtFundAmount.Value); RadTextBox txtFundMemo = (RadTextBox)item.FindControl("txtFundMemo"); row["Memo"] = txtFundMemo.Text; FundsTable.Rows.Add(row); } FundsTable = DeleteFundsRow(FundsTable, rowNumber); //grdFunds.DataSource = FundsTable; grdFunds.Rebind(); //foreach (GridDataItem item in grdFunds.Items) //{ // HiddenField hdnTCode = (HiddenField)item.FindControl("hdnTCode"); // RadDropDownList ddlTCode = (RadDropDownList)item.FindControl("ddlTCode"); // ddlTCode.SelectedValue = hdnTCode.Value; //} FillFundFields(); } protected void btnCalculateFunds_Click(object sender, EventArgs e) { lblFundsTotal.Text = "Total: " + CalculateTotal().ToString("C"); } private void AddFiveRows() { for (int x = 1; x < 6; x++) { FundsTable = AddFundsRow(FundsTable); } //grdFunds.DataSource = FundsTable; grdFunds.Rebind(); } private DataTable DefineFundsDataTable() { DataTable dt = new DataTable("FundsBreakdown"); DataColumn dc = new DataColumn("RowNumber"); dc.DataType = Type.GetType("System.Int32"); dt.Columns.Add(dc); dc = new DataColumn("FundName"); dc.DataType = Type.GetType("System.String"); dt.Columns.Add(dc); dc = new DataColumn("FundNumber"); dc.DataType = Type.GetType("System.String"); dt.Columns.Add(dc); dc = new DataColumn("Account"); dc.DataType = Type.GetType("System.String"); dt.Columns.Add(dc); dc = new DataColumn("Subledger"); dc.DataType = Type.GetType("System.String"); dt.Columns.Add(dc); dc = new DataColumn("TCode"); dc.DataType = Type.GetType("System.String"); dt.Columns.Add(dc); dc = new DataColumn("Amount"); dc.DataType = Type.GetType("System.Decimal"); dt.Columns.Add(dc); dc = new DataColumn("Memo"); dc.DataType = Type.GetType("System.String"); dt.Columns.Add(dc); return dt; } private DataTable AddFundsRow(DataTable dt) { DataRow row = dt.NewRow(); row["RowNumber"] = dt.Rows.Count + 1; row["FundName"] = ""; row["FundNumber"] = ""; row["Account"] = ""; row["Subledger"] = ""; row["TCode"] = ""; row["Amount"] = 0; row["Memo"] = ""; dt.Rows.Add(row); return dt; } private DataTable DeleteFundsRow(DataTable dt, int deleteRow) { DataTable deletedRowTable = DefineFundsDataTable(); foreach (DataRow sourceRow in dt.Rows) { if (Convert.ToInt32(sourceRow["RowNumber"]) != deleteRow) { DataRow row = deletedRowTable.NewRow(); row["RowNumber"] = deletedRowTable.Rows.Count + 1; row["FundName"] = sourceRow["FundName"]; row["FundNumber"] = sourceRow["FundNumber"]; row["Account"] = sourceRow["Account"]; row["Subledger"] = sourceRow["Subledger"]; row["TCode"] = sourceRow["TCode"]; row["Amount"] = sourceRow["Amount"]; row["Memo"] = sourceRow["Memo"]; deletedRowTable.Rows.Add(row); } } return deletedRowTable; } private DataTable LoadFundsDataSource(DataTable sourceDT) { DataTable filledDataTable = DefineFundsDataTable(); foreach (DataRow sourceRow in sourceDT.Rows) { DataRow row = filledDataTable.NewRow(); row["RowNumber"] = filledDataTable.Rows.Count + 1; row["FundName"] = sourceRow["FundName"]; row["FundNumber"] = sourceRow["FundNumber"]; row["Account"] = sourceRow["AccountNumber"]; row["Subledger"] = sourceRow["Subledger"]; row["TCode"] = sourceRow["TCode"]; row["Amount"] = sourceRow["FundAmount"]; row["Memo"] = sourceRow["FundMemo"]; filledDataTable.Rows.Add(row); } return filledDataTable; } private DataTable LoadFundsTemplateDataSource(DataTable sourceDT) { DataTable filledDataTable = DefineFundsDataTable(); foreach (DataRow sourceRow in sourceDT.Rows) { DataRow row = filledDataTable.NewRow(); row["RowNumber"] = filledDataTable.Rows.Count + 1; row["FundName"] = sourceRow["TemplateFundName"]; row["FundNumber"] = sourceRow["TemplateFundNumber"]; row["Account"] = sourceRow["TemplateAccountNumber"]; row["Subledger"] = sourceRow["TemplateSubledger"]; row["TCode"] = sourceRow["TemplateTCode"]; row["Amount"] = 0; row["Memo"] = sourceRow["TemplateFundMemo"]; filledDataTable.Rows.Add(row); } return filledDataTable; } private void FillFundFields() { foreach (GridDataItem item in grdFunds.Items) { HiddenField hdnTCode = (HiddenField)item.FindControl("hdnTCode"); RadDropDownList ddlTCode = (RadDropDownList)item.FindControl("ddlTCode"); if (hdnTCode.Value == "") { ddlTCode.SelectedIndex = -1; } else { ddlTCode.SelectedValue = hdnTCode.Value; } } } protected void grdFunds_NeedDataSource(object sender, GridNeedDataSourceEventArgs e) { ViewState["FundsTable"] = FundsTable; grdFunds.DataSource = FundsTable; }}