or
| <%@ Page Language="C#" AutoEventWireup="true" CodeFile="DiscountTest.aspx.cs" Inherits="Cleopatra.pages.Admin.DiscountTest" MasterPageFile="../../Main.Master" %> |
| <%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %> |
| <asp:Content ID="Content1" runat="server" ContentPlaceHolderID="cphBody"> |
| <!-- custom head section --> |
| <style type="text/css"> |
| .bigModuleBottom td |
| { |
| padding: 0; |
| } |
| </style> |
| <!-- end of custom head section --> |
| <!-- content start --> |
| <span style="font-weight: bold;">Discounts</span> |
| <br /> |
| <br /> |
| <telerik:RadCodeBlock ID="RadCodeBlock1" runat="server"> |
| <script type="text/javascript"> |
| function RowDblClick(sender, eventArgs) { |
| sender.get_masterTableView().editItem(eventArgs.get_itemIndexHierarchical()); |
| } |
| </script> |
| </telerik:RadCodeBlock> |
| <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadGrid1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManager> |
| <telerik:RadGrid ID="RadGrid1" AllowAutomaticUpdates="true" AllowAutomaticDeletes="true" AllowSorting="True" AutoGenerateColumns="false" AllowPaging="True" |
| GridLines="None" runat="server" ShowFooter="True" PageSize="10" AllowAutomaticInserts="True" |
| OnNeedDataSource="RadGrid1_NeedDataSource" OnInsertCommand="RadGrid1_ItemInserted" |
| OnDeleteCommand="RadGrid1_ItemDeleted" OnUpdateCommand="RadGrid1_ItemUpdated"> |
| <PagerStyle Mode="NextPrevAndNumeric" /> |
| <MasterTableView Width="400px" CommandItemDisplay="TopAndBottom" DataKeyNames="EntryID"> |
| <Columns> |
| <telerik:GridEditCommandColumn UniqueName="EditCommandColumn" ButtonType="ImageButton" /> |
| <telerik:GridBoundColumn HeaderText="ID" DataField="EntryID" UniqueName="EntryID" Display="false" Visible="false" /> |
| <telerik:GridBoundColumn HeaderText="Flat Fee?" UniqueName="FlatFee" DataField="FlatFee" /> |
| <telerik:GridBoundColumn HeaderText="Number of Loans" DataField="NumLoans" UniqueName="NumLoans" /> |
| <telerik:GridBoundColumn HeaderText="Discount" DataField="Discount" UniqueName="Discount" /> |
| <telerik:GridButtonColumn UniqueName="DeleteColumn" Text="Delete" CommandName="Delete" ButtonType="ImageButton" /> |
| </Columns> |
| <EditFormSettings EditFormType="Template"> |
| <FormTemplate> |
| <table id="Table2" cellspacing="2" cellpadding="1" width="100%" border="0" rules="none" style="border-collapse: collapse; background: white;"> |
| <tr class="EditFormHeader"> |
| <td colspan="2" style="font-size: small"> |
| <b>Discount Details</b> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <table id="Table3" cellspacing="1" cellpadding="1" width="250" border="0" class="module"> |
| <tr> |
| <td> |
| <asp:HiddenField runat="server" ID="hEntryID" Value='<%# Bind("EntryID") %>' /> |
| </td> |
| <td> |
| |
| </td> |
| </tr> |
| <tr> |
| <td> |
| <asp:CheckBox runat="server" ID="cbFlatFee" Text="Flat fee?" /> |
| </td> |
| <td> |
| |
| </td> |
| </tr> |
| <tr> |
| <td> |
| Number of Loans: |
| </td> |
| <td> |
| <telerik:RadTextBox ID="txtNumLoans" runat="server" MaxLength="50" Text='<%# Bind("NumLoans") %>' /> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| Discount: |
| </td> |
| <td> |
| <telerik:RadTextBox ID="txtDiscount" runat="server" MaxLength="50" Text='<%# Bind("Discount") %>' /> |
| </td> |
| </tr> |
| </table> |
| </td> |
| </tr> |
| <tr> |
| <td> |
| |
| </td> |
| </tr> |
| <tr> |
| <td align="right" colspan="2"> |
| <asp:Button ID="btnUpdate" Text='<%# (Container is GridEditFormInsertItem) ? "Insert" : "Update" %>' runat="server" CommandName='<%# (Container is GridEditFormInsertItem) ? "PerformInsert" : "Update" %>' /> |
| |
| <asp:Button ID="btnCancel" Text="Cancel" runat="server" CausesValidation="False" CommandName="Cancel" /> |
| </td> |
| </tr> |
| </table> |
| </FormTemplate> |
| </EditFormSettings> |
| </MasterTableView> |
| <ClientSettings> |
| <Selecting AllowRowSelect="True" EnableDragToSelectRows="True" /> |
| </ClientSettings> |
| </telerik:RadGrid> |
| <!-- content end --> |
| </asp:Content> |
| using System; |
| using System.Collections.Generic; |
| using System.Web; |
| using System.Web.UI; |
| using System.Web.UI.WebControls; |
| using Telerik.Web.UI; |
| namespace Cleopatra.pages.Admin |
| { |
| public partial class DiscountTest : System.Web.UI.Page |
| { |
| private class DiscountEntry |
| { |
| private int _EntryID = -1; |
| public int EntryID |
| { |
| get { return _EntryID; } |
| set { _EntryID = value; } |
| } |
| private bool _DiscountIsRate = false; |
| public bool DiscountIsRate |
| { |
| get { return _DiscountIsRate; } |
| set { _DiscountIsRate = value; } |
| } |
| private int _NumLoans = 0; |
| public int NumLoans |
| { |
| get { return _NumLoans; } |
| set { _NumLoans = value; } |
| } |
| private double _Discount = 0.0; |
| public double Discount |
| { |
| get { return _Discount; } |
| set { _Discount = value; } |
| } |
| } |
| protected void Page_Load(object sender, EventArgs e) |
| { |
| object obj = Session["discounts"]; |
| List<DiscountEntry> discounts = (List<DiscountEntry>) Session["discounts"]; |
| if (discounts == null) |
| { |
| discounts = new List<DiscountEntry>(); |
| Session.Add("discounts", discounts); |
| } |
| } |
| protected void RadGrid1_PreRender(object sender, System.EventArgs e) |
| { |
| if (!this.IsPostBack) |
| { |
| RadGrid1.EditIndexes.Add(1); |
| RadGrid1.Rebind(); |
| RadGrid1.MasterTableView.Rebind(); |
| } |
| } |
| protected void RadGrid1_NeedDataSource(object source, GridNeedDataSourceEventArgs e) |
| { |
| List<DiscountEntry> discounts = (List<DiscountEntry>) Session["discounts"]; |
| RadGrid1.DataSource = discounts; |
| } |
| protected void RadGrid1_ItemUpdated (object source, GridCommandEventArgs e) |
| { |
| if (e.Item != null) |
| { |
| // Get the form controls out |
| GridEditFormItem editFormItem = (GridEditFormItem) e.Item; |
| HiddenField hEntryID = (HiddenField) editFormItem.FindControl("hEntryID"); |
| CheckBox cbFlatFee = (CheckBox) editFormItem.FindControl("cbFlatFee"); |
| RadTextBox txtNumLoans = (RadTextBox) editFormItem.FindControl("txtNumLoans"); |
| RadTextBox txtDiscount = (RadTextBox) editFormItem.FindControl("txtDiscount"); |
| int entryID = Convert.ToInt32(hEntryID.Value); |
| // Locate and update the discount entries |
| List<DiscountEntry> discounts = (List<DiscountEntry>) Session["discounts"]; |
| foreach (DiscountEntry entry in discounts) |
| { |
| if (entry.EntryID == entryID) |
| { |
| entry.DiscountIsRate = !cbFlatFee.Checked; |
| entry.NumLoans = Convert.ToInt32(txtNumLoans.Text); |
| entry.Discount = Convert.ToDouble(txtDiscount.Text); |
| break; |
| } |
| } |
| } // valid edit item |
| RadGrid1.Rebind(); |
| RadGrid1.MasterTableView.Rebind(); |
| } |
| protected void RadGrid1_ItemDeleted(object source, GridCommandEventArgs e) |
| { |
| if (e.Item != null) |
| { |
| List<DiscountEntry> discounts = (List<DiscountEntry>) Session["discounts"]; |
| discounts.RemoveAt(e.Item.ItemIndex); |
| } // valid delete item |
| } |
| protected void RadGrid1_ItemInserted(object source, GridCommandEventArgs e) |
| { |
| if ((e.Item is GridEditFormInsertItem) && (e.Item.OwnerTableView.IsItemInserted)) |
| { |
| // Get the user controls in the form |
| GridEditFormItem editFormItem = e.Item as GridEditFormItem; |
| HiddenField hEntryID = (HiddenField) editFormItem.FindControl("hEntryID"); |
| CheckBox cbFlatFee = (CheckBox) editFormItem.FindControl("cbFlatFee"); |
| RadTextBox txtNumLoans = (RadTextBox) editFormItem.FindControl("txtNumLoans"); |
| RadTextBox txtDiscount = (RadTextBox) editFormItem.FindControl("txtDiscount"); |
| // Create a new discount table entry and add it to the loan type |
| List<DiscountEntry> discounts = (List<DiscountEntry>) Session["discounts"]; |
| // Determine next available ID |
| int newEntryID = 0; |
| Dictionary<int,bool> discountHash = new Dictionary<int,bool>(); |
| foreach (DiscountEntry discount in discounts) |
| { |
| discountHash.Add(discount.EntryID, true); |
| } |
| int i = 0; |
| while (true) |
| { |
| if (!discountHash.ContainsKey(++i)) |
| { |
| newEntryID = i; |
| break; |
| } |
| } // while loop |
| DiscountEntry entry = new DiscountEntry(); |
| entry.EntryID = newEntryID; |
| entry.DiscountIsRate = !cbFlatFee.Checked; |
| entry.NumLoans = Convert.ToInt32(txtNumLoans.Text); |
| entry.Discount = Convert.ToDouble(txtDiscount.Text); |
| discounts.Add(entry); |
| } // valid insertion |
| RadGrid1.Rebind(); |
| RadGrid1.MasterTableView.Rebind(); |
| } |
| } |
| } |
| Protected Sub RadGrid1_ItemCreated(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) |
| If (TypeOf e.Item Is GridDataItem) Then |
| Dim gridItem As GridDataItem = CType(e.Item, GridDataItem) |
| For Each column As GridColumn In RadGrid1.MasterTableView.RenderColumns |
| If (TypeOf column Is GridBoundColumn) Then |
| gridItem(column.UniqueName).ToolTip = ("ID: " + gridItem.OwnerTableView.DataKeyValues(gridItem.ItemIndex)("ID").ToString) |
| End If |
| Next |
| End If |
| End Sub |
| <telerik:RadAjaxManagerProxy ID="RadAjaxManagerProxy1" runat="server"> |
| <AjaxSettings> |
| <telerik:AjaxSetting AjaxControlID="RadGrid1"> |
| <UpdatedControls> |
| <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" /> |
| <telerik:AjaxUpdatedControl ControlID="RadToolTipManager1" /> |
| </UpdatedControls> |
| </telerik:AjaxSetting> |
| </AjaxSettings> |
| </telerik:RadAjaxManagerProxy> |
| <telerik:RadToolTipManager ID="RadToolTipManager1" runat="server" |
| ManualClose="True"> |
| </telerik:RadToolTipManager> |
<telerik:RadEditor ID="topicBody" Runat="server" Width="100%" height="300" >
<Tools>
<telerik:EditorToolGroup Tag="Top">
<telerik:EditorTool Name="Bold" />
<telerik:EditorTool name="Italic"/>
<telerik:EditorTool name="Underline"/>
<telerik:EditorTool name="StrikeThrough"/>
<telerik:EditorSeparator Visible="true" />
<telerik:EditorTool name="JustifyLeft"/>
<telerik:EditorTool name="JustifyCenter"/>
<telerik:EditorTool name="JustifyRight"/>
<telerik:EditorTool name="JustifyFull"/>
<telerik:EditorSeparator Visible="true" />
<telerik:EditorTool name="InsertOrderedList"/>
<telerik:EditorTool name="InsertUnorderedList"/>
<telerik:EditorTool name="Outdent"/>
<telerik:EditorTool name="Indent"/>
<telerik:EditorSeparator Visible="true" />
<telerik:EditorTool name="FontName"/>
<telerik:EditorTool name="FontSize"/>
<telerik:EditorTool name="ForeColor"/>
<telerik:EditorTool name="BackColor"/>
</telerik:EditorToolGroup>
<telerik:EditorToolGroup Tag="Middle">
<telerik:EditorTool name="Undo"/>
<telerik:EditorTool name="Redo"/>
<telerik:EditorSeparator Visible="true" />
<telerik:EditorTool name="LinkManager"/>
<telerik:EditorTool name="Unlink"/>
<telerik:EditorSeparator Visible="true" />
<telerik:EditorTool name="InsertTable"/>
<telerik:EditorSeparator Visible="true" />
<telerik:EditorTool name="Cut"/>
<telerik:EditorTool name="Copy"/>
<telerik:EditorTool name="PasteAsHtml"/>
<telerik:EditorTool name="PastePlainText"/>
<telerik:EditorSeparator Visible="true" />
<telerik:EditorTool name="Print"/>
</telerik:EditorToolGroup>
</Tools>
</telerik:RadEditor>
| <%-- Bottom content area - main content --%> |
| <asp:Content ID="Content5" ContentPlaceHolderID="bottomContentArea" runat="server"> |
| <telerik:RadScriptManager ID="ScriptManager1" runat="server" |
| EnableTheming="True"> |
| </telerik:RadScriptManager> |
| <div id="contentBottom"> |
| <div id="masterContent" class="col3"> |
| <div class="content"> |
| <h2>Content Page</h2> |
| <table> |
| <tr> |
| <td> |
| <telerik:RadEditor ID="RadEditor1" Runat="server" Skin="Office2007" |
| AutoResizeHeight="True"> |
| <Content> |
| <h1>Publication content</h1>Enter your publication information here.....</Content> |
| </telerik:RadEditor> |
| </td> |
| </tr> |
| <tr> |
| <td> </td> |
| </tr> |
| <tr> |
| <td> |
| <asp:Button ID="btnSave" runat="server" Text="Save" onclick="btnSave_Click" /></td> |
| </tr> |
| </table> |
| <p> </p> |
| </div> |
| <div class="footer"><img src="Resources/Master/images/layout/bkg-content-base-right.gif"/></div> |
| </div> |
| </div> |
| </asp:Content> |
