Telerik Forums
UI for ASP.NET AJAX Forum
1 answer
40 views
Hello,
I am trying to show $0 in radalert.But it's showing as {1}.

radalert('$0');

outPut:  {1}
instead of  $0

Is there any work around?
Can somebody help me on this......
Svetlina Anati
Telerik team
 answered on 28 Jul 2011
3 answers
210 views
Hi,

I am using Telerik grid hierarchy of 3 levels i.e., Master Table, Details Table and Details Table. I have applied pager style

<

 

 

PagerStyle Mode="NextPrevNumericAndAdvanced" AlwaysVisible="true" />

 

paging for Master level with pagesize=10, and i have set paging = false for the details tables in GridTableView. It is showing like "Item 0 to 0 of 0" and only page 1 is displayed, in the paging, even If I have more than 100 rows. And sorting is also not working. Is it because of the hierarchy grid of 3 levels, these are not working?. Because these both functionalites are working at other places where I have not used any Details Table.

Below pasted is the sample code which I am using. I have removed all the columns in it.
<telerik:RadGrid ID="RadGridProject" DataSourceID="sds_p" runat="server" AllowAutomaticUpdates="True"
      AutoGenerateColumns="False" OnDataBound="RadGridProject_DataBound" PageSize="10"
      AllowSorting="true" OnItemCommand="RadGridProject_ItemCommand" AutoGenerateHierarchy="true"
      OnItemDataBound="RadGridProject_ItemDataBound" AllowCustomPaging="True">
      <PagerStyle Mode="NextPrevNumericAndAdvanced" AlwaysVisible="true" />
      <MasterTableView Name="PTable" DataKeyNames="P_id,p_y_id" AllowMultiColumnSorting="True"
          AllowSorting="true" TableLayout="Fixed" EditMode="InPlace" AllowCustomPaging="true"
          AllowPaging="true">
          <HeaderStyle CssClass="Level1HeaderStyle" />
                   <Columns>
                   </Columns>
          <DetailTables>
              <telerik:GridTableView DataKeyNames="faf_id, faf_year_id" DataSourceID="sds_f"
                  AllowPaging="false" Width="60%" HeaderStyle-Width="10px" Name="FTable"
                  TableLayout="Auto" AllowFilteringByColumn="false">
                  <ParentTableRelation>
                      <telerik:GridRelationFields DetailKeyField="p_id" MasterKeyField="P_id" />
                  </ParentTableRelation>
                  <DetailTables>
                      <telerik:GridTableView DataSourceID="sds_d" DataKeyNames="f_id, d_id"
                          Width="80%" AllowFilteringByColumn="false" Name="DTable" runat="server"
                          AllowPaging="false" EditMode="InPlace" TableLayout="Auto">
                          <ParentTableRelation>
                              <telerik:GridRelationFields DetailKeyField="year_id" MasterKeyField="year_id" />
                          </ParentTableRelation>
                          <HeaderStyle CssClass="Level3HeaderStyle" />
                          <ItemStyle CssClass="Level3ItemStyle" Width="10px" />
                          <AlternatingItemStyle CssClass="Level3AltItemStyle" />
                          <Columns>
                             </Columns>
                          <SortExpressions>
                              <telerik:GridSortExpression FieldName="name"  sortOrder="Ascending"> </telerik:GridSortExpression>
                          </SortExpressions>
                      </telerik:GridTableView>
                  </DetailTables>
                  <ItemStyle Width="200px" />
                  <HeaderStyle CssClass="Level2HeaderStyle" Width="100%" />
                  <ItemStyle CssClass="Level2ItemStyle" />
                  <AlternatingItemStyle CssClass="Level2AltItemStyle" />
                  <Columns>
                   </Columns>
                  <SortExpressions>
                      <telerik:GridSortExpression FieldName="f_id"></telerik:GridSortExpression>
                  </SortExpressions>
              </telerik:GridTableView>
          </DetailTables>
          <SortExpressions>
              <telerik:GridSortExpression FieldName="t_name"></telerik:GridSortExpression>
          </SortExpressions>
      </MasterTableView>
      <ClientSettings AllowColumnsReorder="true" ReorderColumnsOnClient="true">
      </ClientSettings>
  </telerik:RadGrid>

Thanks
Gopi Krishna

JJ
Top achievements
Rank 1
 answered on 28 Jul 2011
1 answer
93 views
All,

I have a grid in a usercontrol. That grid has a column with tooltips. The tooltip content is another usercontrol that contains another grid.
I have followed numerous examples of how to accomplish this using the ToolTipManager and the RadAjaxManager.

I cannot seem to get the detail grid to display correct data after button actions. I can see the NeedDataSource event being called and I know the data is there, it is just not being refreshed.

Any and all help is greatly appreciated.

Thanks,
B

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ApplyPaymentList.ascx.cs"
    Inherits="LaundryLogic.Modules.LL_ARActivities.ApplyPaymentList" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
 
<telerik:RadScriptBlock runat="server">
 
    <script type="text/javascript">
 
    function RebindCredits()
    {
        var masterTable = $find("<%= rgCredits.ClientID %>").get_masterTableView();
        masterTable.rebind();
 
    }
    </script>
</telerik:RadScriptBlock>
<telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
   <AjaxSettings>
       <telerik:AjaxSetting AjaxControlID="rgCredits">
           <UpdatedControls>
               <telerik:AjaxUpdatedControl ControlID="RadToolTipManager1" />
               <telerik:AjaxUpdatedControl ControlID="rgCredits" />
           </UpdatedControls>
       </telerik:AjaxSetting>
   </AjaxSettings>
</telerik:RadAjaxManager>
<telerik:RadToolTipManager ID="RadToolTipManager1" OffsetY="-1" HideEvent="ManualClose"
   Width="800" Height="800" runat="server" EnableShadow="true" OnAjaxUpdate="OnAjaxUpdate"
   RelativeTo="BrowserWindow" Position="Center" ShowCallout="false" ShowEvent="OnClick" OnClientHide="RebindCredits">
</telerik:RadToolTipManager>
 
<table width="100%">
    <tr>
        <td>
            <asp:Label ID="lblHeader1" runat="server" CssClass="moduleheader" Text="Apply Customer Payments to Invoices"></asp:Label>
            -
            <asp:Label ID="lblHeader2" runat="server" CssClass="moduleheader" Text="You are working on Payment Batch Number "></asp:Label>
        </td>
    </tr>
    <tr>
        <td>
            <hr />
        </td>
    </tr>
    <tr>
        <td>
            <asp:Label ID="lblHeader3" runat="server" CssClass="moduleheader" Text="Customer Payments in this Batch"></asp:Label>
        </td>
    </tr>
    <tr>
        <td>
            <telerik:RadGrid ID="rgCredits" runat="server" AllowPaging="True" AllowSorting="True"
                AutoGenerateColumns="False" GridLines="None" EnableEmbeddedSkins="False"
                onneeddatasource="rgCredits_NeedDataSource" Skin="Sitefinity"
                onitemcommand="rgCredits_ItemCommand" onitemdatabound="rgCredits_ItemDataBound">
                <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
                </HeaderContextMenu>
                <MasterTableView DataKeyNames="ID,EntityType,EntityID">
                    <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:GridDateTimeColumn DataField="CreditDate" DataFormatString="{0:MM/dd/yyyy}"
                                        DataType="System.DateTime" FilterControlAltText="Filter CreditDate column" HeaderText="Credit Date"
                                        UniqueName="CreditDate">
                                    </telerik:GridDateTimeColumn>
                                    <telerik:GridBoundColumn DataField="AccountName" FilterControlAltText="Filter AccountName column"
                                        HeaderText="Account Name" MaxLength="20" UniqueName="AccountName">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="AccountNumber" FilterControlAltText="Filter AccountNumber column"
                                        HeaderText="Account Number" MaxLength="20" UniqueName="AccountNumber">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridTemplateColumn DataField="ActivityTypeID" FilterControlAltText="Filter ActivityType column"
                                        HeaderText="Type" UniqueName="ActivityType">
                                        <EditItemTemplate>
                                            <telerik:RadComboBox ID="rcbActivityType" runat="server">
                                            </telerik:RadComboBox>
                                        </EditItemTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblActivityType" runat="server" Text='<%# Eval("ActivityTypeID") %>'></asp:Label>
                                        </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridBoundColumn DataField="CreditIdentifier" FilterControlAltText="Filter CreditIdentifier column"
                                        HeaderText="Credit Identifier" MaxLength="20" UniqueName="CreditIdentifier">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridTemplateColumn DataField="OriginalAmount" HeaderText="Original Amt."
                                        UniqueName="OriginalAmount">
                                        <EditItemTemplate>
                                            <telerik:RadNumericTextBox ID="rntOriginalAmount" runat="server" CausesValidation="True"
                                                DataType="System.Decimal" Type="Currency">
                                            </telerik:RadNumericTextBox>
                                        </EditItemTemplate>
                                        <ItemTemplate>
                                            <asp:Label ID="lblOriginalAmount" runat="server" Text='<%# Eval("OriginalAmount", "{0:c}") %>'></asp:Label>
                                        </ItemTemplate>
                                    </telerik:GridTemplateColumn>
                                    <telerik:GridNumericColumn DataField="RemainingAmount" DataType="System.Decimal"
                                        DecimalDigits="2" FilterControlAltText="Filter RemainingAmount column" HeaderText="Remaining Amt."
                                        NumericType="Currency" ReadOnly="True" UniqueName="RemainingAmount">
                                    </telerik:GridNumericColumn>
                                    <telerik:GridBoundColumn DataField="PaymentBatchID" Display="false" FilterControlAltText="Filter Payment Batch ID column"
                                        HeaderText="Payment Batch ID" ReadOnly="true">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn ColumnEditorID="GridTextBoxColumnEditor1" DataField="Notes"
                                        FilterControlAltText="Filter Notes column" HeaderText="Notes" MaxLength="500"
                                        UniqueName="Notes">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridBoundColumn DataField="CreatedBy" Display="False" FilterControlAltText="Filter CreatedBy column"
                                        HeaderText="Created By" MaxLength="50" ReadOnly="True" UniqueName="CreatedBy">
                                    </telerik:GridBoundColumn>
                                    <telerik:GridButtonColumn CommandName="Apply" FilterControlAltText="Filter Apply column"
                                        Text="Apply This Payment" UniqueName="Apply">
                                    </telerik:GridButtonColumn>
                                </Columns>
                    <EditFormSettings>
                        <EditColumn FilterControlAltText="Filter EditCommandColumn column"
                            cancelimageurl="Cancel.gif" editimageurl="Edit.gif" insertimageurl="Update.gif"
                            updateimageurl="Update.gif">
                        </EditColumn>
                    </EditFormSettings>
                </MasterTableView>
                <FilterMenu EnableImageSprites="False">
                </FilterMenu>
            </telerik:RadGrid>
        </td>
    </tr>
    <tr>
        <td>
            <hr />
        </td>
    </tr>
    <tr>
        <td>
            <telerik:RadButton ID="rbtnPaymentBatchManagement" runat="server"
                Text="Batch Manager" CausesValidation="false"
                onclick="rbtnPaymentBatchManagement_Click">
                <Icon PrimaryIconCssClass="rbPrevious" />
            </telerik:RadButton>
        </td>
    </tr>
</table>

using DotNetNuke.Common;
 
using EntitySpaces.Interfaces;
 
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
using Telerik.Web.UI;
 
namespace LaundryLogic.Modules.LL_ARActivities
{
    public partial class ApplyPaymentList : LL_ARActivitiesModuleBase
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Request["PaymentBatchID"] != null)
            {
                lblHeader2.Text = lblHeader2.Text + Request["PaymentBatchID"].ToString();
            }
        }
 
        protected void rgCredits_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            DataTable oDTMaster = new DataTable();
            DataTable oDTStandard = new DataTable();
            DataTable oDT = new DataTable();
 
            oDTMaster = LoadMasterPayments();
            oDTStandard = LoadStandardPayments();
            oDT.Merge(oDTMaster);
            oDT.Merge(oDTStandard);
 
            if (oDT != null)
            {
                rgCredits.DataSource = oDT;
            }
            else
            {
                rgCredits.DataSource = new object[0];
            }
 
        }
 
        private DataTable LoadMasterPayments()
        {
            LaundryLogicDAL.ARCreditsQuery oARCQ = new LaundryLogicDAL.ARCreditsQuery("arc");
            LaundryLogicDAL.ARActivityTypeQuery oARATQ = new LaundryLogicDAL.ARActivityTypeQuery("arat");
            LaundryLogicDAL.ARAccountsQuery oARAQ = new LaundryLogicDAL.ARAccountsQuery("araq");
            LaundryLogicDAL.ARMasterQuery oARMQ = new LaundryLogicDAL.ARMasterQuery("armq");
 
            DataTable oDT = new DataTable();
            DataTable oDTStandard = new DataTable();
 
            try
            {
 
                oARCQ.es2.Connection.Name = "NAS";
                oARCQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARATQ.es2.Connection.Name = "NAS";
                oARATQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARAQ.es2.Connection.Name = "NAS";
                oARAQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARMQ.es2.Connection.Name = "NAS";
                oARMQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                oARCQ.Select(
                    oARCQ.Id,
                    oARCQ.EntityType,
                    oARCQ.EntityID,
                    oARMQ.AccountName,
                    "<'N/A' AS [AccountNumber]>",
                    oARCQ.CreditDate,
                    oARCQ.ActivityTypeID,
                    oARATQ.ActivityType,
                    oARCQ.CreditIdentifier,
                    oARCQ.OriginalAmount,
                    oARCQ.RemainingAmount,
                    oARCQ.Notes,
                    oARCQ.PaymentBatchID,
                    oARCQ.CreatedBy,
                    oARCQ.CreateDate
                );
                oARCQ.InnerJoin(oARATQ).On(oARCQ.ActivityTypeID == oARATQ.Id);
                oARCQ.InnerJoin(oARMQ).On(oARCQ.EntityID == oARMQ.Id);
                oARCQ.Where(oARCQ.EntityType == "Master");
 
                if (Request["PaymentBatchID"] != null)
                {
                    oARCQ.Where(oARCQ.PaymentBatchID == Convert.ToInt16(Request["PaymentBatchID"]));
                }
 
                return oARCQ.LoadDataTable();
 
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
                return null;
            }
            finally
            {
                //oARCC.Dispose();
                //oARCC = null;
                oARCQ = null;
                oARATQ = null;
                oARAQ = null;
                oARMQ = null;
                oDT = null;
 
            }
        }
 
        private DataTable LoadStandardPayments()
        {
            LaundryLogicDAL.ARCreditsQuery oARCQ = new LaundryLogicDAL.ARCreditsQuery("arc");
            LaundryLogicDAL.ARActivityTypeQuery oARATQ = new LaundryLogicDAL.ARActivityTypeQuery("arat");
            LaundryLogicDAL.ARAccountsQuery oARAQ = new LaundryLogicDAL.ARAccountsQuery("araq");
            LaundryLogicDAL.ARMasterQuery oARMQ = new LaundryLogicDAL.ARMasterQuery("armq");
 
            DataTable oDT = new DataTable();
            DataTable oDTStandard = new DataTable();
 
            try
            {
 
                oARCQ.es2.Connection.Name = "NAS";
                oARCQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARATQ.es2.Connection.Name = "NAS";
                oARATQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARAQ.es2.Connection.Name = "NAS";
                oARAQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARMQ.es2.Connection.Name = "NAS";
                oARMQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                oARCQ.Select(
                    oARCQ.Id,
                    oARCQ.EntityType,
                    oARCQ.EntityID,
                    oARAQ.AccountName,
                    oARAQ.Account.As("AccountNumber"),
                    oARCQ.CreditDate,
                    oARCQ.ActivityTypeID,
                    oARATQ.ActivityType,
                    oARCQ.CreditIdentifier,
                    oARCQ.OriginalAmount,
                    oARCQ.RemainingAmount,
                    oARCQ.Notes,
                    oARCQ.PaymentBatchID,
                    oARCQ.CreatedBy,
                    oARCQ.CreateDate
                );
                oARCQ.InnerJoin(oARATQ).On(oARCQ.ActivityTypeID == oARATQ.Id);
                oARCQ.InnerJoin(oARAQ).On(oARCQ.EntityID == oARAQ.Id);
                oARCQ.Where(oARCQ.EntityType == "Standard");
 
                if (Request["PaymentBatchID"] != null)
                {
                    oARCQ.Where(oARCQ.PaymentBatchID == Convert.ToInt16(Request["PaymentBatchID"]));
                }
 
                return oARCQ.LoadDataTable();
 
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
                return null;
            }
            finally
            {
                //oARCC.Dispose();
                //oARCC = null;
                oARCQ = null;
                oARATQ = null;
                oARAQ = null;
                oARMQ = null;
                oDT = null;
 
            }
        }
 
        protected void rbtnPaymentBatchManagement_Click(object sender, EventArgs e)
        {
            Response.Redirect(Globals.NavigateURL(), true);
        }
 
        protected void OnAjaxUpdate(object sender, ToolTipUpdateEventArgs args)
        {
            this.UpdateToolTip(args.Value, args.UpdatePanel);
            rgCredits.Rebind();
        }
        private void UpdateToolTip(string elementID, UpdatePanel panel)
        {
            string[] separator = new string[] { "|" };
            string[] arrElementID = elementID.Split(separator,StringSplitOptions.None);
 
            ApplyPayments oApplyPayments = (ApplyPayments)LoadControl("ApplyPayments.ascx");
            oApplyPayments.ID = "ApplyPayments1";
            panel.ContentTemplateContainer.Controls.Add(oApplyPayments);
            oApplyPayments.EntityType = arrElementID[1].ToString();
            oApplyPayments.EntityID = Convert.ToInt16(arrElementID[2]);
            oApplyPayments.PaymentID = Convert.ToInt16(arrElementID[0]);
 
            RadGrid rgDebits = (RadGrid)oApplyPayments.FindControl("rgDebits");
 
            RadAjaxManager1.AjaxSettings.AddAjaxSetting(rgDebits, oApplyPayments);
        }
 
        protected void rgCredits_ItemDataBound(object sender, GridItemEventArgs e)
        {
            if (e.Item.ItemType == GridItemType.Item || e.Item.ItemType == GridItemType.AlternatingItem)
            {
                int iPaymentID = (int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["ID"];
                string sEntityType = e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["EntityType"].ToString();
                int iEntityID = (int)e.Item.OwnerTableView.DataKeyValues[e.Item.ItemIndex]["EntityID"];
 
                GridDataItem oDataItem = (GridDataItem)e.Item;
                LinkButton lnkTarget = (LinkButton)oDataItem["Apply"].Controls[0];
                if (!Object.Equals(lnkTarget, null))
                {
                    lnkTarget.Attributes.Add("onclick", "javascript:return false;");
                    if (!Object.Equals(this.RadToolTipManager1, null))
                    {
                        //Add the button (target) id to the tooltip manager
                        string sValue = iPaymentID.ToString() + "|" + sEntityType + "|" + iEntityID.ToString();
 
                        this.RadToolTipManager1.TargetControls.Add(lnkTarget.ClientID, sValue, true);
                    }
                }
 
            }
        }
        protected void rgCredits_ItemCommand(object source, GridCommandEventArgs e)
        {
            if (e.CommandName == "Sort" || e.CommandName == "Page")
            {
                RadToolTipManager1.TargetControls.Clear();
            }
        }
    }
}
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ApplyPayments.ascx.cs"
    Inherits="LaundryLogic.Modules.LL_ARActivities.ApplyPayments" %>
<%@ Register Assembly="Telerik.Web.UI" Namespace="Telerik.Web.UI" TagPrefix="telerik" %>
<link href="module.css" rel="stylesheet" type="text/css" />
 
<table width="100%">
    <tr>
        <td width="20%" colspan="5">
            <asp:Label ID="lblCustomerPaymentHeader" CssClass="moduleheader" runat="server" Text="Apply Customer Payment"></asp:Label>
        </td>
    </tr>
    <tr>
        <td width="20%">
              
        </td>
        <td colspan="4">
              
        </td>
    </tr>
    <tr>
        <td colspan="5">
            <div class="divborder">
                <table>
                    <tr>
                        <td align="left">
                            <asp:Label ID="lblCustomerSelectedCaption" runat="server" Text="Customer Selected:"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="lblAccountNumber" runat="server"></asp:Label>
                              
                        </td>
                        <td>
                            <asp:Label ID="lblAccountName" runat="server"></asp:Label>
                        </td>
                        <td align="left">
                            <asp:Label ID="lblMasterCaption" runat="server" Text="Master?"></asp:Label>
                        </td>
                        <td>
                            <asp:Label ID="lblIsMasterAccount" runat="server"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">
                            <asp:Label ID="lblCreditIdentifierHeader" runat="server" Text="Payment/Check Number:"></asp:Label>
                        </td>
                        <td colspan="4">
                            <asp:Label ID="lblCreditIdentifier" runat="server"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">
                            <asp:Label ID="lblCreditDateHeader" runat="server" Text="Payment/Credit Date:"></asp:Label>
                        </td>
                        <td colspan="4">
                            <asp:Label ID="lblCreditDate" runat="server"></asp:Label>
                        </td>
                    </tr>                   
                    <tr>
                        <td align="left">
                            <asp:Label ID="lblPaymentActivityTypeHeader" runat="server" Text="Payment/Credit Type:"></asp:Label>
                        </td>
                        <td colspan="4">
                            <asp:Label ID="lblPaymentActivityType" runat="server"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">
                            <asp:Label ID="lblPaymentAmountHeader" runat="server" Text="Payment/Credit Amount:"></asp:Label>
                        </td>
                        <td colspan="4">
                            <asp:Label ID="lblPaymentAmount" runat="server"></asp:Label>
                        </td>
                    </tr>
                    <tr>
                        <td align="left">
                            <asp:Label ID="lblPaymentRemainingHeader" runat="server" Text="Amount Remaining:"></asp:Label>
                        </td>
                        <td colspan="4">
                            <asp:Label ID="lblPaymentRemaining" runat="server"></asp:Label>
                        </td>
                    </tr>
                </table>
            </div>
        </td>
    </tr>
    <tr>
        <td>
              
        </td>
        <td colspan="4">
              
        </td>
    </tr>
 
    <tr>
        <td colspan="5">
            <asp:Label ID="lblOpenInvoicesHeader" CssClass="moduleheader" runat="server" Text="Open Invoices"></asp:Label>
        </td>
    </tr>
 
    <tr>
        <td>
              
        </td>
        <td colspan="4">
              
        </td>
    </tr>
    <tr>
        <td colspan="5">
            <asp:Button ID="btnAutoApply" runat="server"
    OnClick="btnAutoApply_Click" Text="AutoApply"
                 
     
                ToolTip="Automatically apply payment to as many invoices as possible beginning with the oldest invoice" />
            <asp:Button ID="btnRollbackAll" runat="server" onclick="btnRollbackAll_Click"
                Text="Rollback All" />
            <asp:Button ID="btnRollbackSelected" runat="server" onclick="btnRollbackSelected_Click"
                Text="Rollback Selected"
    CommandName="RollbackSelected" />
            <asp:Button ID="btnClearAll" runat="server"
    OnClick="btnClearAll_Click" Text="Clear All" />
        </td>
    </tr>
 
    <tr>
        <td colspan="5">
            <telerik:RadGrid Width="100%" ID="rgDebits" runat="server" AutoGenerateColumns="False"
                GridLines="None" OnNeedDataSource="rgDebits_NeedDataSource" OnItemCreated="rgDebits_ItemCreated"
                OnSortCommand="rgDebits_SortCommand" Skin="Sitefinity"
                EnableEmbeddedSkins="False"
                onprerender="rgDebits_PreRender">
                <HeaderContextMenu CssClass="GridContextMenu GridContextMenu_Default">
                </HeaderContextMenu>
                <GroupingSettings CaseSensitive="false" />
                <ValidationSettings EnableValidation="False" />
                <MasterTableView EditMode="InPlace" DataKeyNames="ID" AllowPaging="True" ShowFooter="false">
                    <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:GridTemplateColumn FilterControlAltText="Filter TemplateColumn column" HeaderText="Apply?"
                            UniqueName="Apply">
                            <EditItemTemplate>
                                <asp:CheckBox ID="chkApply" runat="server" AutoPostBack="True" OnCheckedChanged="chkApply_CheckedChanged" />
                            </EditItemTemplate>
                            <ItemTemplate>
                                <asp:CheckBox ID="chkApply" runat="server" AutoPostBack="True" OnCheckedChanged="chkApply_CheckedChanged" />
                            </ItemTemplate>
                        </telerik:GridTemplateColumn>
                        <telerik:GridTemplateColumn FilterControlAltText="Filter AmountApplied column" HeaderText="Amount Applied"
                            UniqueName="AmountApplied">
                            <EditItemTemplate>
                                <telerik:RadNumericTextBox ID="txtAmountApplied" runat="server" Type="Currency">
                                </telerik:RadNumericTextBox>
                            </EditItemTemplate>
                        </telerik:GridTemplateColumn>
                        <telerik:GridBoundColumn DataField="Account" DataType="System.String" FilterControlAltText="Filter Account column"
                            HeaderText="Account Number" ReadOnly="true" UniqueName="Account">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="AccountName"
                            FilterControlAltText="Filter AccountName column" HeaderText="Account Name"
                            ReadOnly="True" UniqueName="AccountName">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="DebitDate" DataType="System.DateTime" FilterControlAltText="Filter DebitDate column"
                            DataFormatString="{0:d}" HeaderText="Debit Date" ReadOnly="True" UniqueName="DebitDate">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="DebitIdentifier" FilterControlAltText="Filter DebitIdentifier column"
                            HeaderText="Debit Id" MaxLength="20" ReadOnly="True" UniqueName="DebitIdentifier">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn AllowSorting="False" DataField="OriginalAmount"
                            DataFormatString="{0:C2}" DataType="System.Decimal"
                            FilterControlAltText="Filter OriginalAmount column"
                            HeaderText="Original Amount" ReadOnly="True" UniqueName="OriginalAmount">
                        </telerik:GridBoundColumn>
                        <telerik:GridBoundColumn DataField="RemainingAmount" DataFormatString="{0:C2}" DataType="System.Decimal"
                            FilterControlAltText="Filter RemainingAmount column" HeaderText="Remaining Amount"
                            ReadOnly="True" UniqueName="RemainingAmount" AllowSorting="False">
                        </telerik:GridBoundColumn>
                    </Columns>
                    <EditFormSettings>
                        <EditColumn FilterControlAltText="Filter EditCommandColumn column">
                        </EditColumn>
                    </EditFormSettings>
                </MasterTableView>
                <FilterMenu EnableImageSprites="False">
                </FilterMenu>
            </telerik:RadGrid>
        </td>
    </tr>
    <tr>
        <td colspan="5">
            <telerik:RadButton runat="server" ID="rbtnApply" OnClick="cmdApply_Click" Text="Done with Applications">
                <Icon PrimaryIconCssClass="rbPrevious" />
            </telerik:RadButton>
        </td>
    </tr>
</table>
using EntitySpaces.Interfaces;
 
using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
 
using Telerik.Web.UI;
 
namespace LaundryLogic.Modules.LL_ARActivities
{
    public partial class ApplyPayments : LL_ARActivitiesModuleBase
    {
        private string msEntityType;
        private int miEntityID;
 
        private double sum = 0;
 
        public string EntityType
        {
            set
            {
                Session["EntityType"] = value;
            }
        }
 
        public int EntityID
        {
            set
            {
                Session["EntityID"] = value;
            }
        }
 
        public int PaymentID
        {
 
            set {
                int iEntityID = 0;
                string sEntityType = "";
 
                Session["PaymentID"] = value;
 
                LoadAccountInfo(Session["EntityType"].ToString(), (int)Session["EntityID"]);
                LoadPayment();
                rgDebits.Rebind();
            }
        }
 
        protected void Page_Load(object sender, EventArgs e)
        {
            SetConnection();           
        }
 
        #region Events
 
        protected void chkApply_CheckedChanged(object sender, EventArgs e)
        {
            bool bHasRemainder = true;
            CheckBox chk = (CheckBox)sender;
            GridEditableItem edititem = (GridEditableItem)chk.Parent.Parent;
            try
            {
                TextBox txtRemainingAmount = (TextBox)edititem["RemainingAmount"].Controls[0];
     
                decimal decRemaining = LL_Utility.CurrencyToDecimal(lblPaymentRemaining.Text);
                decimal decAmountDue = LL_Utility.CurrencyToDecimal(txtRemainingAmount.Text);
                //TextBox txtAmountApplied = (TextBox)edititem["AmountApplied"].FindControl("txtAmountApplied");
                RadNumericTextBox txtAmountApplied = (RadNumericTextBox)edititem["AmountApplied"].FindControl("txtAmountApplied");
 
                #region Region Checked
                if (chk.Checked)
                {
                    if (decRemaining > decAmountDue)
                    {
                        if (txtAmountApplied.Text == "" || txtAmountApplied.Value == 0)
                        {
                            txtAmountApplied.Text = decAmountDue.ToString();
                        }
                        decRemaining = decRemaining - decAmountDue;
                        lblPaymentRemaining.Text = decRemaining.ToString("C2");
                        if (decRemaining > 0)
                        {
                            bHasRemainder = true;
                        }
                        else
                        {
                            bHasRemainder = false;
                        }
                    }
                    else if (decRemaining < decAmountDue)
                    {
                        txtAmountApplied.Text = decRemaining.ToString();
                        decRemaining = 0;
                        lblPaymentRemaining.Text = decRemaining.ToString("C2");
                        bHasRemainder = false;
                    }
 
                }
                #endregion Checked
 
                #region Region Unchecked
                else
                {
                    decRemaining = LL_Utility.CurrencyToDecimal(lblPaymentRemaining.Text);
 
                    //get the amount to be applied from the txtAmount textbox
                    decimal decAmountApplied = LL_Utility.CurrencyToDecimal(txtAmountApplied.Text);
                    decRemaining = decRemaining + decAmountApplied;
                    txtAmountApplied.Text = "";// 0.ToString("C2");
                    lblPaymentRemaining.Text = decRemaining.ToString("C2");
                    bHasRemainder = true;
 
                }
                #endregion Region Unchecked
                if (!bHasRemainder)
                {
                    foreach (GridItem item in rgDebits.EditItems)
                    {
                        GridDataItem dataitem = (GridDataItem)item;
                        CheckBox chkApply = (CheckBox)dataitem["Apply"].FindControl("chkApply");
                        RadNumericTextBox txtAmountApplied2 = (RadNumericTextBox)dataitem["AmountApplied"].FindControl("txtAmountApplied");
                        if (!chkApply.Checked)
                        {
                            chkApply.Enabled = false;
                            txtAmountApplied2.Enabled = false;
                        }
                    }
                }
                else
                {
                    foreach (GridItem item in rgDebits.EditItems)
                    {
                        GridDataItem dataitem = (GridDataItem)item;
                        CheckBox chkApply = (CheckBox)dataitem["Apply"].FindControl("chkApply");
                        RadNumericTextBox txtAmountApplied2 = (RadNumericTextBox)dataitem["AmountApplied"].FindControl("txtAmountApplied");
 
                        chkApply.Enabled = true;
                        txtAmountApplied2.Enabled = true;
                    }
                }
 
                //SetVisibility("Apply");
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
 
        }
 
        protected void cmdApply_Click(object sender, EventArgs e)
        {
            ApplyCredit();
            rgDebits.Rebind();
        }
 
        private void ApplyCredit()
        {
            LaundryLogicDAL.ARApplicationsCollection oARAC = new LaundryLogicDAL.ARApplicationsCollection();
            LaundryLogicDAL.ARCredits oARC = new LaundryLogicDAL.ARCredits();
            LaundryLogicDAL.ARDebits oARD = new LaundryLogicDAL.ARDebits();
 
            try
            {
                oARAC.es.Connection.Name = "NAS";
                oARAC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARC.es.Connection.Name = "NAS";
                oARC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARD.es.Connection.Name = "NAS";
                oARD.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                using (EntitySpaces.Interfaces.esTransactionScope scope = new esTransactionScope())
                {
                    foreach (GridItem item in rgDebits.EditItems)
                    {
                        GridEditableItem edititem = (GridEditableItem)item;
                        RadNumericTextBox txtAmountApplied = (RadNumericTextBox)edititem["AmountApplied"].FindControl("txtAmountApplied");
                        CheckBox chkApply = (CheckBox)edititem["Apply"].FindControl("chkApply");
                        decimal decAppliedAmount = LL_Utility.CurrencyToDecimal(txtAmountApplied.Text);
                        //int iCreditID = (int)ViewState["PaymentID"];
                        int iCreditID = (int)Session["PaymentID"];
                        int iDebitID = (int)edititem.OwnerTableView.DataKeyValues[edititem.ItemIndex]["ID"];
 
                        if (chkApply.Checked)
                        {
 
                            //check to see if the application exists for this credit and debit,
                            //and update the amounts if it does, otherwise add it.
 
                            oARAC.Query.Where(oARAC.Query.CreditID == iCreditID, oARAC.Query.DebitID == iDebitID);
                            if (oARAC.Query.Load())
                            {
                                oARAC[0].MarkAsDeleted();
                                oARAC.Save();
                            }
 
                            //Application Record
                            LaundryLogicDAL.ARApplications oARA = oARAC.AddNew();
                            oARA.CreditID = iCreditID;
                            oARA.DebitID = iDebitID;
                            oARA.Notes = "";
                            oARA.Amount = decAppliedAmount;
                            oARA.ApplicationDate = DateTime.Now;
                            oARA.IsVoid = false;
                            oARA.CreateDate = DateTime.Now;
                            oARA.CreatedBy = UserInfo.FullName;
                             
                            oARAC.Save();
                            //Credit Record
                            //Set Remaining Amount = Remaining Amount - decAppliedAmount
                            if (oARC.LoadByPrimaryKey(iCreditID))
                            {
                                oARC.RemainingAmount = oARC.RemainingAmount - decAppliedAmount;
                                oARC.Save();
                            }
 
                            //Debit Record
                            //Set Remaining Amount = Remaining Amount - decAppliedAmount
                            if (oARD.LoadByPrimaryKey(iDebitID))
                            {
                                oARD.RemainingAmount = oARD.RemainingAmount - decAppliedAmount;
                                oARD.Save();
                            }
                        }
                    }
 
                    scope.Complete();
 
                    //PlaceHolder phApplication = (PlaceHolder)cmdApply.Parent.Parent;
                    //phApplication.Visible = false;
 
                    //UserControl ucPayment = (UserControl)phApplication.Parent;
                    //PlaceHolder phPayment = (PlaceHolder)ucPayment.FindControl("phApplyPayments");
                    //phPayment.Visible = true;
                    //RadGrid rg = (RadGrid)ucPayment.FindControl("rgDebits");
                    //rg.Rebind();
                }
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
                //SetVisibility("Apply");
            }
            finally
            {
                oARAC.Dispose();
                oARAC = null;
                oARC = null;
                oARD = null;
            }
        }
         
        protected void cmdCancel_Click(object sender, EventArgs e)
        {
            LoadPayment();
            rgDebits.Rebind();
 
        }
 
        protected void rgDebits_NeedDataSource(object sender, Telerik.Web.UI.GridNeedDataSourceEventArgs e)
        {
            DataTable oDTOpenDebits;
            DataTable oDTClosedDebits;
            DataTable oDT = new DataTable(); ;
            int iEntityID = 0;
            string sEntityType = "";
             
            try
            {
                if (Session["EntityID"] != null)
                {
                    iEntityID = (int)Session["EntityID"];
                    sEntityType = Session["EntityType"].ToString();
                }
 
 
                if (sEntityType != "" && iEntityID > 0)
                {
                    oDTOpenDebits = LoadOpenDebits(sEntityType, iEntityID);
                    oDTClosedDebits = LoadClosedDebits((int)Session["PaymentID"]);
                    oDT.Merge(oDTOpenDebits);
                    oDT.Merge(oDTClosedDebits);
                    if (oDT != null)
                    {
                        rgDebits.DataSource = oDT;
                    }
                    else
                    {
                        rgDebits.DataSource = new object[0];
                    }
                }
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
        }
 
        protected void rgDebits_ItemCreated(object sender, GridItemEventArgs e)
        {
            if (e.Item.ItemType == GridItemType.EditItem && e.Item.IsInEditMode)//check whether the grid is in edit mode
            {
                GridEditableItem editItem = (GridEditableItem)e.Item;
                CheckBox chkApply = (CheckBox)editItem["Apply"].FindControl("chkApply");
                RadNumericTextBox txtAmountApplied = (RadNumericTextBox)editItem["AmountApplied"].FindControl("txtAmountApplied");//accessing the textBox
 
                txtAmountApplied.AutoPostBack = true;
                txtAmountApplied.TextChanged += new EventHandler(txtAmountApplied_TextChanged);
            }
        }
 
        protected void rgDebits_SortCommand(object sender, GridSortCommandEventArgs e)
        {
            //SetRowsToEditMode();
        }
 
        protected void txtAmountApplied_TextChanged(object sender, EventArgs e)
        {
            bool bHasRemainder = true;
            RadNumericTextBox txt = (RadNumericTextBox)sender;
            GridEditableItem edititem = (GridEditableItem)txt.Parent.Parent;
 
            try
            {
                TextBox txtRemainingAmount = (TextBox)edititem["RemainingAmount"].Controls[0];
                decimal decPaymentAmount = LL_Utility.CurrencyToDecimal(lblPaymentAmount.Text);
                decimal decCurrentAppliedAmount = LL_Utility.CurrencyToDecimal(txt.Text);
                decimal decRemaining = LL_Utility.CurrencyToDecimal(lblPaymentRemaining.Text);
 
                decRemaining = 0;
 
                foreach (GridEditableItem editItem in rgDebits.EditItems)
                {
                    //GridEditableItem editItem = (GridEditableItem)item;
                    CheckBox chkApply = (CheckBox)editItem["Apply"].FindControl("chkApply");
                    RadNumericTextBox txtAmountApplied = (RadNumericTextBox)editItem["AmountApplied"].FindControl("txtAmountApplied");
                    if (chkApply.Checked)
                    {
                        decimal decTemp = LL_Utility.CurrencyToDecimal(txtAmountApplied.Text);
                        decRemaining = decRemaining + decTemp;
                    }
                }
 
                if (decRemaining > decPaymentAmount)
                {
                    txt.Text = "";
                    CheckBox chkApply = (CheckBox)edititem["Apply"].FindControl("chkApply");
                    chkApply.Checked = false;
                    //return;
                }
 
                if (decRemaining == decPaymentAmount)
                {
                    foreach (GridItem item in rgDebits.EditItems)
                    {
                        GridDataItem dataitem = (GridDataItem)item;
                        CheckBox chkApply = (CheckBox)dataitem["Apply"].FindControl("chkApply");
                        RadNumericTextBox txtAmountApplied2 = (RadNumericTextBox)dataitem["AmountApplied"].FindControl("txtAmountApplied");
                        if (!chkApply.Checked)
                        {
                            chkApply.Enabled = false;
                            txtAmountApplied2.Enabled = false;
                        }
                    }
                }
                else if (decRemaining < decPaymentAmount)
                {
                    foreach (GridItem item in rgDebits.EditItems)
                    {
                        GridDataItem dataitem = (GridDataItem)item;
                        CheckBox chkApply = (CheckBox)dataitem["Apply"].FindControl("chkApply");
                        RadNumericTextBox txtAmountApplied2 = (RadNumericTextBox)dataitem["AmountApplied"].FindControl("txtAmountApplied");
 
                        chkApply.Enabled = true;
                        txtAmountApplied2.Enabled = true;
                    }
                }
 
                //Recalculate
                decRemaining = 0;
                foreach (GridItem item in rgDebits.EditItems)
                {
                    GridEditableItem editItem2 = (GridEditableItem)item;
                    CheckBox chkApply2 = (CheckBox)editItem2["Apply"].FindControl("chkApply");
                    RadNumericTextBox txtAmountApplied2 = (RadNumericTextBox)editItem2["AmountApplied"].FindControl("txtAmountApplied");
                    if (chkApply2.Checked)
                    {
                        decimal decTemp = LL_Utility.CurrencyToDecimal(txtAmountApplied2.Text);
                        decRemaining = decRemaining + decTemp;
                    }
                }
                lblPaymentRemaining.Text = (decPaymentAmount - decRemaining).ToString("C2");
 
                //SetVisibility("Apply");
 
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(ex.Message, this, ex);
            }
 
        }
 
        #endregion Events
 
        #region Methods
 
        private void AutoApplyCredit(int iCreditID, int iEntityID, string sEntityType)
        {
            LaundryLogicDAL.ARDebitsCollection oARDC = new LaundryLogicDAL.ARDebitsCollection();
            LaundryLogicDAL.ARDebitsQuery oARDQ = new LaundryLogicDAL.ARDebitsQuery("ard");
            LaundryLogicDAL.ARAccountsQuery oARAQ = new LaundryLogicDAL.ARAccountsQuery("ara");
            LaundryLogicDAL.ARApplicationsCollection oARAC = new LaundryLogicDAL.ARApplicationsCollection();
 
            decimal decRemainingAmount = 0;
 
            try
            {
                oARDC.es.Connection.Name = "NAS";
                oARDC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARDQ.es2.Connection.Name = "NAS";
                oARDQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARAC.es.Connection.Name = "NAS";
                oARAC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARAQ.es2.Connection.Name = "NAS";
                oARAQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                //if standard account passed in
                if (sEntityType == "Standard")
                //get open debits for entity type and ID in descending order
                {
                    oARDQ.Where(
                        oARDQ.EntityID == iEntityID,
                        oARDQ.EntityType == sEntityType,
                        oARDQ.RemainingAmount > 0
                    );
 
                }
                //if master account, we need the sub accounts.
                else
                {
                    oARDQ.InnerJoin(oARAQ).On(
                        oARDQ.EntityType == "Standard" &&
                        oARDQ.EntityID == oARAQ.Id);
                    oARDQ.Where(
                        oARAQ.MasterAccountID == iEntityID,
                        oARDQ.RemainingAmount > 0
                        );
                }
                oARDQ.OrderBy(oARDQ.DebitDate.Ascending);
 
                if (oARDC.Load(oARDQ))
                {
 
 
                    //begin transaction
                    using (EntitySpaces.Interfaces.esTransactionScope scope = new esTransactionScope())
                    {
 
                        //for each debit
                        foreach (LaundryLogicDAL.ARDebits oARD in oARDC)
                        {
 
                            LaundryLogicDAL.ARCredits oARC = new LaundryLogicDAL.ARCredits();
 
                            try
                            {
 
                                oARC.es.Connection.Name = "NAS";
                                oARC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                                if (oARC.LoadByPrimaryKey(iCreditID))
                                {
                                    decimal decDebitRemainingAmount = (decimal)oARD.RemainingAmount;
 
                                    //if credit remaining amount > debit remaining amount
                                    if (oARC.RemainingAmount > oARD.RemainingAmount && oARD.RemainingAmount > 0)
                                    {
 
                                        //create application record with credit id and debit id and amount = debit remaining amount
                                        LaundryLogicDAL.ARApplications oARA = oARAC.AddNew();
                                        oARA.CreditID = iCreditID;
                                        oARA.DebitID = oARD.Id;
                                        oARA.Amount = decDebitRemainingAmount;
                                        oARA.ApplicationDate = DateTime.Today;
                                        oARA.CreateDate = DateTime.Now;
                                        oARA.CreatedBy = UserInfo.FullName;
                                        oARAC.Save();
                                        //update debit set remaining amount = 0
                                        oARD.RemainingAmount = 0;
                                        oARDC.Save();
                                        //update credit set remaining amount = credit original amount - debit original amount
                                        oARC.RemainingAmount = oARC.RemainingAmount - decDebitRemainingAmount;
                                        oARC.Save();
 
                                    }
 
 
                                    //if credit remaining amount < debit remaining amount
                                    else if (oARC.RemainingAmount < oARD.RemainingAmount && oARD.RemainingAmount > 0)
                                    {
                                        //create application record with credit id and debit id and amount = credit remaining amount
                                        LaundryLogicDAL.ARApplications oARA = oARAC.AddNew();
                                        oARA.CreditID = iCreditID;
                                        oARA.DebitID = oARD.Id;
                                        oARA.Amount = oARC.RemainingAmount;
                                        oARA.ApplicationDate = DateTime.Today;
                                        oARA.CreateDate = DateTime.Now;
                                        oARA.CreatedBy = UserInfo.FullName;
                                        oARAC.Save();
                                        //update debit set remaining amount = debit original amount - credit original amount
                                        if (oARC.RemainingAmount > 0)
                                        {
                                            oARD.RemainingAmount = decDebitRemainingAmount - oARC.RemainingAmount;
                                        }
                                        else
                                        {
                                            oARD.RemainingAmount = decDebitRemainingAmount - oARC.OriginalAmount;
                                        }
                                        //update credit set remaining amount = 0
                                        oARC.RemainingAmount = 0;
                                        oARC.Save();
 
                                        oARDC.Save();
 
 
                                    }
                                    //if credit remaining amount = debit remaining amount
                                    else if (oARC.RemainingAmount == oARD.RemainingAmount && oARD.RemainingAmount > 0)
                                    {
                                        //create application record with credit id and debit id and amount = credit remaining amount
                                        LaundryLogicDAL.ARApplications oARA = oARAC.AddNew();
                                        oARA.CreditID = iCreditID;
                                        oARA.DebitID = oARD.Id;
                                        oARA.Amount = oARC.RemainingAmount;
                                        oARA.ApplicationDate = DateTime.Today;
                                        oARA.CreateDate = DateTime.Now;
                                        oARA.CreatedBy = UserInfo.FullName;
                                        oARAC.Save();
                                        //update debit set remaining amount = 0
                                        oARD.RemainingAmount = 0;
                                        oARDC.Save();
                                        //update credit set remaining amount = 0
                                        oARC.RemainingAmount = 0;
                                        oARC.Save();
                                    }
 
                                    decRemainingAmount = (decimal)oARC.RemainingAmount;
 
                                }
                            }
                            finally
                            {
                                oARC = null;
                            }
                            if (decRemainingAmount == 0)
                            {
                                break;
                            }
                        }
 
                        //commit transaction
                        scope.Complete();
 
                    }
                }
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
                //SetVisibility("Apply");
            }
            finally
            {
                oARDC.Dispose();
                oARDC = null;
            }
        }
 
        public void LoadAccountInfo(string sEntityType, int iEntityID)
        {
            LaundryLogicDAL.ARAccounts oARA = new LaundryLogicDAL.ARAccounts();
            LaundryLogicDAL.ARMaster oARM = new LaundryLogicDAL.ARMaster();
 
            try
            {
                oARA.es.Connection.Name = "NAS";
                oARA.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARM.es.Connection.Name = "NAS";
                oARM.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                if (sEntityType == "Master")
                {
                    if (oARM.LoadByPrimaryKey(iEntityID))
                    {
                        lblAccountName.Text = oARM.AccountName;
                        lblAccountNumber.Text = "(N/A)";
                        lblIsMasterAccount.Text = "Y";
                    }
                }
                else if (sEntityType == "Standard")
                {
                    if (oARA.LoadByPrimaryKey(iEntityID))
                    {
                        lblAccountName.Text = oARA.AccountName;
                        lblAccountNumber.Text = oARA.Account;
                        lblIsMasterAccount.Text = "N";
                    }
                }
 
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
            finally
            {
                oARA = null;
                oARM = null;
            }
        }
 
        private DataTable LoadClosedDebits(int iPaymentID)
        {
            LaundryLogicDAL.ARDebitsQuery oARDQ = new LaundryLogicDAL.ARDebitsQuery("ard");
            LaundryLogicDAL.ARAccountsQuery oARAQ = new LaundryLogicDAL.ARAccountsQuery("ara");
            LaundryLogicDAL.ARApplicationsQuery oARAQ2 = new LaundryLogicDAL.ARApplicationsQuery("ara2");
 
            try
            {
                oARDQ.es2.Connection.Name = "NAS";
                oARDQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARAQ.es2.Connection.Name = "NAS";
                oARAQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARAQ2.es2.Connection.Name = "NAS";
                oARAQ2.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
 
                oARDQ.Select(
                    oARDQ.Id,
                    oARDQ.DebitDate,
                    oARDQ.DebitIdentifier,
                    oARAQ.Account,
                    oARAQ.AccountName,
                    oARDQ.OriginalAmount,
                    oARDQ.RemainingAmount);
 
                oARDQ.InnerJoin(oARAQ).On(
                    oARDQ.EntityID == oARAQ.Id);
                oARDQ.InnerJoin(oARAQ2).On(
                    oARDQ.Id == oARAQ2.DebitID);
                oARDQ.Where(
                    oARAQ2.CreditID == iPaymentID,
                    oARDQ.RemainingAmount == 0
                );
 
                oARDQ.OrderBy(oARDQ.DebitDate.Ascending);
 
                return oARDQ.LoadDataTable();
 
            }
            catch (Exception ex)
            {
                System.Text.StringBuilder oSB = new System.Text.StringBuilder();
                oSB.AppendLine("Missing variable:");
                oSB.AppendLine("iPaymentID: " + iPaymentID);
 
                DotNetNuke.Services.Exceptions.Exceptions.LogException(ex);
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(oSB.ToString(), this, ex);
                return null;
            }
            finally
            {
                oARDQ = null;
                oARAQ = null;
            }
 
        }
 
        private DataTable LoadOpenDebits(string sEntityType, int iEntityID)
        {
            LaundryLogicDAL.ARDebitsQuery oARDQ = new LaundryLogicDAL.ARDebitsQuery("ard");
            LaundryLogicDAL.ARAccountsQuery oARAQ = new LaundryLogicDAL.ARAccountsQuery("ara");
            try
            {
                oARDQ.es2.Connection.Name = "NAS";
                oARDQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARAQ.es2.Connection.Name = "NAS";
                oARAQ.es2.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                oARDQ.Select(
                    oARDQ.Id,
                    oARDQ.DebitDate,
                    oARDQ.DebitIdentifier,
                    oARAQ.Account,
                    oARAQ.AccountName,
                    oARDQ.OriginalAmount,
                    oARDQ.RemainingAmount);
 
                if (sEntityType == "Standard")
                {
                    oARDQ.InnerJoin(oARAQ).On(oARDQ.EntityID == oARAQ.Id);
                    oARDQ.Where(
                        oARDQ.EntityID == iEntityID,
                        oARDQ.EntityType == sEntityType,
                        oARDQ.RemainingAmount > 0,
                        oARDQ.OriginalAmount > 0
                    );
                }
                else
                {
                    oARDQ.InnerJoin(oARAQ).On(
                        oARDQ.EntityID == oARAQ.Id);
                    oARDQ.Where(
                        oARAQ.MasterAccountID == iEntityID,
                        oARDQ.RemainingAmount > 0,
                        oARDQ.OriginalAmount > 0
                    );
                }
                oARDQ.OrderBy(oARDQ.DebitDate.Ascending);
 
                return oARDQ.LoadDataTable();
 
            }
            catch(Exception ex)
            {
                System.Text.StringBuilder oSB = new System.Text.StringBuilder();
                oSB.AppendLine("Missing variable:");
                oSB.AppendLine("iEntityID: " + iEntityID);
                oSB.AppendLine("sEntityType: " + sEntityType);
 
                DotNetNuke.Services.Exceptions.Exceptions.LogException(ex);
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(oSB.ToString(), this, ex);
                return null;
            }
            finally
            {
                oARDQ = null;
                oARAQ = null;
            }
        }
 
        private void LoadPayment()
        {
            LaundryLogicDAL.ARCredits oARC = new LaundryLogicDAL.ARCredits();
            LaundryLogicDAL.ARActivityType oART = new LaundryLogicDAL.ARActivityType();
            try
            {
                oARC.es.Connection.Name = "NAS";
                oARC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oART.es.Connection.Name = "NAS";
                oART.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
 
                //if (oARC.LoadByPrimaryKey((int)ViewState["PaymentID"]))
                if (oARC.LoadByPrimaryKey((int)Session["PaymentID"]))
                {
                    if (oART.LoadByPrimaryKey((int)oARC.ActivityTypeID))
                    {
                        this.lblPaymentActivityType.Text = oART.ActivityType;
                    }
                    this.lblCreditIdentifier.Text = oARC.CreditIdentifier;
                    DateTime dteCreditDate = (DateTime)oARC.CreditDate;
                    this.lblCreditDate.Text = dteCreditDate.ToShortDateString();
                    this.lblPaymentAmount.Text = string.Format("{0:C2}", oARC.OriginalAmount);
                    this.lblPaymentRemaining.Text = string.Format("{0:C2}", oARC.RemainingAmount);
                    if (oARC.RemainingAmount > 0)
                    {
                        //btnAutoApply.Enabled = true;
                         
                    }
                    else
                    {
                        //btnAutoApply.Enabled = false;
                    }
                }
 
            }
            catch(Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
            finally
            {
                oARC = null;
                oART = null;
            }
        }
 
        private void RollbackCredit(int iID)
        {
            LaundryLogicDAL.ARApplicationsCollection oARAC = new LaundryLogicDAL.ARApplicationsCollection();
            LaundryLogicDAL.ARDebits oARD = new LaundryLogicDAL.ARDebits();
            LaundryLogicDAL.ARCredits oARC = new LaundryLogicDAL.ARCredits();
            try
            {
                string sCreditIdentifier = "";
 
                oARAC.es.Connection.Name = "NAS";
                oARAC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARD.es.Connection.Name = "NAS";
                oARD.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARC.es.Connection.Name = "NAS";
                oARC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                //Get all applications with the Credit ID = iID
                oARAC.Query.Where(
                    oARAC.Query.CreditID == iID
                );
 
 
                if (oARAC.Query.Load())
                {
                    //begin transaction
                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        //for each application record
                        for (int i = 0; i < oARAC.Count; i++)
                        {
                            //get invoice record
                            if (oARD.LoadByPrimaryKey((int)oARAC[i].DebitID))
                            {
                                //update invoice record set remaining amount = remaining amount + application amount
                                oARD.RemainingAmount = oARD.RemainingAmount + oARAC[i].Amount;
                                oARD.Save();
                            }
 
                            //get credit record
                            if (oARC.LoadByPrimaryKey(iID))
                            {
                                //update credit record set remaining amount = remaining amount + application amount
                                oARC.RemainingAmount = oARC.RemainingAmount + oARAC[i].Amount;
                                sCreditIdentifier = oARC.CreditIdentifier;
                                oARC.Save();
                            }
                        }
                        oARAC.MarkAllAsDeleted();
                        oARAC.Save();
 
                        scope.Complete();
                    }
                }
                //else
                //{
                //    if (oARC.LoadByPrimaryKey(iID))
                //    {
                //        //update credit record set remaining amount = remaining amount + application amount
                //        oARC.RemainingAmount = oARC.RemainingAmount + oARAC[i].Amount;
                //        sCreditIdentifier = oARC.CreditIdentifier;
                //        //oARC.MarkAsDeleted();
                //        oARC.Save();
                //    }
                //}
                //commit transaction
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
            finally
            {
                oARAC.Dispose();
                oARAC = null;
                oARC = null;
                oARD = null;
            }
        }
 
        private void SetConnection()
        {
            //If there is no default connection named DNNFulcrum
            if (esConfigSettings.ConnectionInfo.Default != "DNNFulcrum")
            {
                //Get the connectionInfo section from the web.config
                esConfigSettings ConnectionInfoSettings = esConfigSettings.ConnectionInfo;
                //loop through each connection...
                foreach (esConnectionElement connection in ConnectionInfoSettings.Connections)
                {
                    //if there is a DNNFulcrum in es connections set it default
                    if (connection.Name == "DNNFulcrum")
                    {
                        esConfigSettings.ConnectionInfo.Default = connection.Name;
                        return;
                    }
                }
            }
            // Register the Loader
            esProviderFactory.Factory = new EntitySpaces.LoaderMT.esDataProviderFactory();
        }
 
        private void SetRowsToEditMode()
        {
            //try
            //{
            //    for (int i = 0; i < rgDebits.PageSize; i++)
            //    {
            //        rgDebits.EditIndexes.Add(i);
            //    }
 
            //}
            //catch(Exception ex)
            //{
            //    DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            //}
        }
 
        private void SetVisibility(string sFunction)
        {
            //System.Web.UI.UserControl ucPayments = (System.Web.UI.UserControl)this.Parent.Parent;
            //PlaceHolder phAccounts = (PlaceHolder)ucPayments.FindControl("phAccounts");
            //PlaceHolder phCredits = (PlaceHolder)ucPayments.FindControl("phCredits");
            //PlaceHolder phApplyPayments = (PlaceHolder)ucPayments.FindControl("phApplyPayments");
            //System.Web.UI.UserControl ucCredits = (System.Web.UI.UserControl)phCredits.FindControl("Credits1");
            //RadGrid rgCredits = (RadGrid)ucCredits.FindControl("rgCredits");
            //rgCredits.Rebind();
 
            //switch (sFunction)
            //{
            //    case "Customer":
            //        {
            //            phAccounts.Visible = true;
            //            phCredits.Visible = false;
            //            phApplyPayments.Visible = false;
            //            break;
 
            //        }
            //    case "Payment":
            //        {
            //            phAccounts.Visible = false;
            //            phCredits.Visible = true;
            //            phApplyPayments.Visible = false;
            //            break;
 
            //        }
            //    case "Apply":
            //        {
            //            phAccounts.Visible = false;
            //            phCredits.Visible = false;
            //            phApplyPayments.Visible = true;
            //            break;
            //        }
            //}
        }
 
        #endregion Methods
 
        protected void btnClearAll_Click(object sender, EventArgs e)
        {
            ClearAll();
            //SetVisibility("Apply");
        }
 
        private void ClearAll()
        {
            foreach (GridItem item in rgDebits.EditItems)
            {
                GridDataItem dataitem = (GridDataItem)item;
                CheckBox chkApply = (CheckBox)dataitem["Apply"].FindControl("chkApply");
                RadNumericTextBox txtAmountApplied = (RadNumericTextBox)dataitem["AmountApplied"].FindControl("txtAmountApplied");
                chkApply.Checked = false;
                txtAmountApplied.Text = "";
            }
            //lblPaymentRemaining.Text = lblPaymentAmount.Text;
        }
 
        protected void btnAutoApply_Click(object sender, EventArgs e)
        {
            if (Session["EntityType"] != null &&
                Session["EntityID"] != null &&
                Session["PaymentID"] != null)
            {
                string sEntityType = Session["EntityType"].ToString();
                int iEntityID = (int)Session["EntityID"];
                int iCreditID = (int)Session["PaymentID"];
                AutoApplyCredit(iCreditID, iEntityID, sEntityType);
                LoadPayment();
                rgDebits.Rebind();
                ClearAll();
                //SetVisibility("Apply");
            }
        }
 
        protected void btnRollbackAll_Click(object sender, EventArgs e)
        {
            if(Session["PaymentID"] != null)
            {
                int iPaymentID = (int)Session["PaymentID"];
                RollbackCredit(iPaymentID);
                rgDebits.Rebind();
                ClearAll();
            }
 
        }
 
        protected void rgDebits_PreRender(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < rgDebits.PageSize; i++)
                {
                    rgDebits.EditIndexes.Add(i);
                }
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
 
        }
 
        protected void btnRollbackSelected_Click(object sender, EventArgs e)
        {
            foreach (GridEditableItem oEditItem in rgDebits.MasterTableView.Items)
            {
                CheckBox chkApply = (CheckBox)oEditItem.FindControl("chkApply");
                if (chkApply.Checked)
                {
                    int iApplicationID = (int)oEditItem.OwnerTableView.DataKeyValues[oEditItem.ItemIndex]["ID"];
                    RollbackApplication((int)Session["PaymentID"], iApplicationID);
                }
            }
            LoadPayment();
            rgDebits.Rebind();
            UpdatePanel oUP = (UpdatePanel)this.Parent.Parent;
            oUP.Update();
        }
 
        private void RollbackApplication(int iCreditID, int iDebitID)
        {
            //need to get the creditID and debit ID from the application record, then
            //add the applied amount to the credit remaining amount
            //add the applied amount to the debit remaining amount
            //delete the application
 
            LaundryLogicDAL.ARApplications oARA = new LaundryLogicDAL.ARApplications();
            LaundryLogicDAL.ARDebits oARD = new LaundryLogicDAL.ARDebits();
            LaundryLogicDAL.ARCredits oARC = new LaundryLogicDAL.ARCredits();
            try
            {
                string sCreditIdentifier = "";
 
                oARA.es.Connection.Name = "NAS";
                oARA.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARD.es.Connection.Name = "NAS";
                oARD.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
                oARC.es.Connection.Name = "NAS";
                oARC.es.Connection.SqlAccessType = esSqlAccessType.DynamicSQL;
 
                //Get all applications with the Credit ID = iID
 
                oARA.Query.Where(oARA.Query.CreditID == iCreditID, oARA.Query.DebitID == iDebitID);
                if (oARA.Query.Load())
                {
                    //begin transaction
                    using (esTransactionScope scope = new esTransactionScope())
                    {
                        //get invoice record
                        if (oARD.LoadByPrimaryKey((int)oARA.DebitID))
                        {
                            //update invoice record set remaining amount = remaining amount + application amount
                            oARD.RemainingAmount = oARD.RemainingAmount + oARA.Amount;
                            oARD.Save();
                        }
 
                        //get credit record
                        if (oARC.LoadByPrimaryKey((int)oARA.CreditID))
                        {
                            //update credit record set remaining amount = remaining amount + application amount
                            oARC.RemainingAmount = oARC.RemainingAmount + oARA.Amount;
                            sCreditIdentifier = oARC.CreditIdentifier;
                            oARC.Save();
                        }
                         
                        oARA.MarkAsDeleted();
                        oARA.Save();
 
                        scope.Complete();
                    }
                }
 
            }
            catch (Exception ex)
            {
                DotNetNuke.Services.Exceptions.Exceptions.ProcessModuleLoadException(this, ex);
            }
            finally
            {
                oARA = null;
                oARC = null;
                oARD = null;
            }
 
        }
 
    }
}
Genti
Telerik team
 answered on 28 Jul 2011
1 answer
535 views
hi i am using windowmanager and radwindow to popup one div from same page.

i am able to display div as popup. but now i have one button on popup and onclicking which popuo window should close.

i tried most solutions which i got in forum but none is working.

<telerik:RadWindowManager ID="winmanParolee" runat="server" ReloadOnShow="false"
            VisibleOnPageLoad="false" KeepInScreenBounds="true">
            <Windows>
                <telerik:RadWindow ID="winPopup" runat="server" OpenerElementID="Button1" ShowContentDuringLoad="true"
                    KeepInScreenBounds="true" Modal="true" Width="600px" Height="400px">
                    <ContentTemplate>
                    <script type= "text/javascript">
                     
                         function Close() {
                                GetRadWindow().Close();
                            }    
  
                            function GetRadWindow() {
                                var oWindow = null;
                                if (window.radWindow)
                                    oWindow = window.radWindow; 
                                else if (window.frameElement.radWindow)
                                    oWindow = window.frameElement.radWindow;       
                                return oWindow;
                            }
                               
                         </script>
                        <div>
                            My dialog content here...
                            <telerik:RadSchedulerRecurrenceEditor ID="RadSchedulerRecurrenceEditor1" runat="server">
                            </telerik:RadSchedulerRecurrenceEditor>
                            <asp:Button ID="Button3" runat="server" Text="Close" OnClick="close_click" />
                        </div>
                    </ContentTemplate>
                </telerik:RadWindow>
            </Windows>
        </telerik:RadWindowManager>

and on server side i tried both options but not able to work .

protected void close_click(object sender, EventArgs e)
       {
                     Label1.Text = "<script type='text/javascript'>Close()</" + "script>";
           
          // Page.ClientScript.RegisterStartupScript(this.GetType(), "", "Close()",true);
       }

waiting for your reply.

Thanks in advance
Marin Bratanov
Telerik team
 answered on 28 Jul 2011
4 answers
81 views

Hi
I'm using the telerik RadGrid. What I want to do is to add a row in the header of the grid to group the columns which has checboxes in it.
Currently I have the columns as GridCheckbox column in the masterview table.
Example:

<MasterTableView >
<Columns>
        
<telerik:GridCheckBoxColumn DataField="1" HeaderText="1"  />
        
<telerik:GridCheckBoxColumn DataField="2"  HeaderText="2" />
        <telerik:GridCheckBoxColumn DataField="3" HeaderText="3" />

 

 

 

 

 

All I want to do is just add a customer header that show two or more column headers grouped togeather. I don't need to group any data.
like

header 1: group Header
header 2:      1 2 3
and then the values of the columns 1 2 and 3 in check boxes

How can i do this?
Does anyone have any idea?

Maria Ilieva
Telerik team
 answered on 28 Jul 2011
1 answer
63 views
Hello,

is it possible to change the value returned by the SelectedValue when there is nothing selected?
I need this because it returns 0, and that unfortunatelly is a valid id in the database, and when there is nothing selected it shouldn't retrieve anything from the database, and it is retrieving, and that's just weird.

Thanks!
Tiago Ribeiro
Tiago
Top achievements
Rank 1
 answered on 28 Jul 2011
7 answers
188 views
I have a RadWindow that is used to update values. When the button is clicked and the event is finished the whole page reloads. I would like to apply some Ajax to the RadWindow so that the whole page doesn't reload when the update is complete, just the RadWindow closes. Below is the code I have so far:

ASP.NET

<telerik:RadAjaxLoadingPanel ID="LocationsLoadingPanel" runat="server" Transparency="30" Skin="Vista"></telerik:RadAjaxLoadingPanel>
        <telerik:RadAjaxPanel ID="LocationsPanel" runat="server" LoadingPanelID="LocationsLoadingPanel">
            <telerik:RadTreeView ID="LocationsTreeView" runat="server" EnableDragAndDrop="true"  MultipleSelect="true" EnableDragAndDropBetweenNodes="true"
            AllowNodeEditing="true" OnContextMenuItemClick="LocationsTreeView_ContextMenuItemClick" OnClientContextMenuItemClicking="onClientContextMenuItemClicking"
            OnClientContextMenuShowing="onClientContextMenuShowing" OnNodeEdit="LocationsTreeView_NodeEdit"
            OnNodeDrop="LocationsTreeView_NodeDrop" OnClientNodeDropping="onNodeDropping" OnClientNodeDragging="onNodeDragging">
             <ContextMenus>
                    <telerik:RadTreeViewContextMenu ID="MainContextMenu" runat="server">
                        <Items>
                            <telerik:RadMenuItem Value="Rename" Text="Rename ..." Enabled="true" ImageUrl="images/icons/edit_48.png"
                                PostBack="false">
                            </telerik:RadMenuItem>
                            <telerik:RadMenuItem IsSeparator="true">
                            </telerik:RadMenuItem>
                            <telerik:RadMenuItem Value="addLocation" Text="Add Location" ImageUrl="images/icons/add_16.png">
                            </telerik:RadMenuItem>    
                            <telerik:RadMenuItem Value="editDetails" Text="Edit Details" PostBack="true" />                
                        </Items>
                        <CollapseAnimation Type="none" />
                    </telerik:RadTreeViewContextMenu>
                </ContextMenus>
            </telerik:RadTreeView>
            <telerik:RadFormDecorator ID="RadFormDecorator1" runat="server" Skin="Vista" DecoratedControls="All" />
            <telerik:RadWindow ID="editDetails_RadWindow" runat="server" Modal="true" Behaviors="Close"
                Width="300px" Height="150px" DestroyOnClose="true" VisibleStatusbar="false"  >
                <ContentTemplate>
                    <table>
                        <tr>
                            <td><asp:Label ID="editDetailsIDlbl" Text="ID: " runat="server" /></td>
                            <td><telerik:RadTextBox ID="editDetailsIDtxt" runat="server" Enabled="false"/>
                                <asp:Label ID="InjectScript" runat="server" /></td>
                        </tr>
                        <tr>
                            <td><asp:Label ID="editDetailsCostCtrLbl" Text="Cost Center:" runat="server" /></td>
                            <td><telerik:RadTextBox ID="editDetailsCostCtrTxt" runat="server" EmptyMessage="Enter Cost Center" />
                            </td>
                        </tr>
                        <tr>
                            <td><asp:Label ID="editDetailsAuxLocLbl" Text="Aux Location: " runat="server" /></td>
                            <td><telerik:RadTextBox ID="editDetailsAuxLocTxt" runat="server" EmptyMessage="Enter Aux Location" /></td>
                        </tr>
                        <tr>
                            <td colspan="2"><telerik:RadButton ID="editDetailsUpdateBtn" runat="server" Text="Update" CommandArgument="LocationID" OnClick="editDetailsUpdateBtn_Click" /></td>
                        </tr>
                    </table>
                </ContentTemplate>
            </telerik:RadWindow>
            <telerik:RadWindowManager ID="locationRadWindow" runat="server"  />
        </telerik:RadAjaxPanel>


C#

protected void LocationsTreeView_ContextMenuItemClick(object sender, RadTreeViewContextMenuEventArgs e)
 {
     RadTreeNode clickedNode = e.Node;
 
     switch (e.MenuItem.Value)
     {
         case "addLocation":
             RadTreeNode newLocation = new RadTreeNode(string.Format("New Location"));
             newLocation.Selected = true;
             newLocation.ImageUrl = clickedNode.ImageUrl;
 
 
             clickedNode.Nodes.Add(newLocation);
 
             clickedNode.Expanded = true;
             //update the number in the brackets
             if (Regex.IsMatch(clickedNode.Text, unreadPattern))
                 clickedNode.Text = Regex.Replace(clickedNode.Text, unreadPattern, "(" + clickedNode.Nodes.Count.ToString() + ")");
              
             clickedNode.Font.Bold = true;
             //set node's value so we can find it in startNodeInEditMode
              
             // Add Location Record to Database
             string ParentID = clickedNode.Value;
             Guid ID = Guid.NewGuid();
             string LocationID = ID.ToString();
 
             // Used for naming the node after adding it
             newLocation.Value = LocationID;
             startNodeInEditMode(newLocation.Value);
 
             string Name = newLocation.Text;
             LocationsTreeView_AddLocation(ParentID, LocationID, Name);
 
              
             break;
 
         case "editDetails":
 
             // Get the location of the item were editing
             string LocID = clickedNode.Value;
             string CostCtr = "";
             string AuxLoc = "";
 
             // Get Cost Center and Aux Location if it exists
             SqlCommand locationDetailsCmd = new SqlCommand("SELECT CostCenter, AuxLocationID FROM dbo.Locations WHERE ID='" + LocID + "'", connection);
             connection.Open();
             SqlDataReader rdr = locationDetailsCmd.ExecuteReader();
 
             while (rdr.Read())
             {
                 if (!rdr.IsDBNull(0))
                 CostCtr = rdr.GetString(0).ToString();
 
                 if (!rdr.IsDBNull(1))
                 AuxLoc = rdr.GetString(1).ToString();
             }
             connection.Close();
              
             editDetails_RadWindow.VisibleOnPageLoad = true;
 
             // Set the RadWindow TextBox Values
             editDetailsCostCtrTxt.Text = CostCtr;
             editDetailsAuxLocTxt.Text = AuxLoc;
             editDetailsIDtxt.Text = LocID;
             locationRadWindow.Windows.Add(editDetails_RadWindow);
             break;
     }
 }
 
protected void editDetailsUpdateBtn_Click(object sender, EventArgs e)
 {
     string AuxLocation = editDetailsAuxLocTxt.Text;
     string CostCenter = editDetailsCostCtrTxt.Text;
     string LocationID = editDetailsIDtxt.Text;
      
     SqlCommand editDetailsUpdateCmd = new SqlCommand("UPDATE dbo.locations SET CostCenter='" + CostCenter + "', AuxLocationID='" + AuxLocation + "' WHERE ID ='" + LocationID + "'", connection);
     connection.Open();
     editDetailsUpdateCmd.ExecuteNonQuery();
     connection.Close();
 
 }
William
Top achievements
Rank 1
 answered on 28 Jul 2011
0 answers
77 views
  • With Q2 2011 RadComboBox's empty message shows whenever there is no selected item even if the control is read-only (AllowCustomText=False, EnableLoadOnDemand=False). This has been a highly requested fix for the last couple of Qs in all of our support channels, so we finally implemented it although it may be a breaking change in some of your implementations.

In case it is a breaking change please consider retaining the previous functionality by using one of the two approaches:
  • for a data bound RadComboBox handle the OnDataBound event and select the first item (if it exists).
  • otherwise select the first item after you add items to the control.
Telerik Admin
Top achievements
Rank 1
Iron
 asked on 28 Jul 2011
1 answer
141 views
Hello,

How can I upload xml file using the RadEditor document manager.
Here is my code:
<telerik:RadEditor runat="server" ID="CntntRadEditor" Height="500px" Width="100%" style="z-index:1000;" Content='<%# DataBinder.Eval( Container, "DataItem.Cntnt") %>' ToolsFile="~/Common/Controls/RadEditor/xml/CustomFullSetOfToolsForSecureTables.xml">
                           <Modules>
                               <telerik:EditorModule Visible="false" />
                           </Modules>
                           <ImageManager ViewPaths="~/P/Design/Contents/Guide" UploadPaths="~/P/Design/Contents/Guide" DeletePaths="~/P/Design/Contents/Guide" />
                           <DocumentManager ViewPaths="~/P/Design/Contents/Guide" UploadPaths="~/P/Design/Contents/Guide" DeletePaths="~/P/Design/Contents/Guide" />
                       </telerik:RadEditor>

Please, I need your help in order to solve this problem.
It is appreciated to send me the modified code.

Regards,
Bader
Dobromir
Telerik team
 answered on 28 Jul 2011
3 answers
95 views
When bound to a webservice, how do I intercept whats going to show in the panel and show something custom?

I'm returning a serialized javascript object so I want to deserialize it, and just just ONE property of the object.

This is what I've been trying, but I think the cancel is stopping the content from showing in the panel?...or is this the wrong method?

function onSaveNotificationPanel_Updating(sender, args) {
    var callbackresult = Sys.Serialization.JavaScriptSerializer.deserialize(args.get_content());
     
    //Put the content into the panel
    args.set_cancel(true); 
    args.set_content(callbackresult.Message);
}
Svetlina Anati
Telerik team
 answered on 28 Jul 2011
Narrow your results
Selected tags
Tags
+? more
Top users last month
Jay
Top achievements
Rank 3
Iron
Iron
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
Radek
Top achievements
Rank 2
Iron
Iron
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Richard
Top achievements
Rank 4
Bronze
Bronze
Iron
Want to show your ninja superpower to fellow developers?
Top users last month
Jay
Top achievements
Rank 3
Iron
Iron
Iron
Benjamin
Top achievements
Rank 3
Bronze
Iron
Veteran
Radek
Top achievements
Rank 2
Iron
Iron
Iron
Bohdan
Top achievements
Rank 2
Iron
Iron
Richard
Top achievements
Rank 4
Bronze
Bronze
Iron
Want to show your ninja superpower to fellow developers?
Want to show your ninja superpower to fellow developers?