How to create CheckBoxes on runtime and set their Checked = true or false

  1. #1

    How to create CheckBoxes on runtime and set their Checked = true or false

    I'm having issues with checkboxgroup I'm able to add checkboxes on runtime without any problems but can't set their Checked properties.


    Client Side HTML
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="ManageCoupons.ascx.cs"
        Inherits="Ctrl_ManageCoupons" %>
    <%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>
    <h2>
        Manage Coupons</h2>
    <ext:Store ID="Store1" runat="server" RemoteSort="true" OnRefreshData="Store1_RefreshData">
        <Proxy>
            <ext:PageProxy />
        </Proxy>
        <Reader>
            <ext:JsonReader IDProperty="Column">
                <Fields>
                    <ext:RecordField Name="ID" />
                    <ext:RecordField Name="Name" />
                    <ext:RecordField Name="Description" />
                    <ext:RecordField Name="Percentage" />
                    <ext:RecordField Name="Active" />
                </Fields>
            </ext:JsonReader>
        </Reader>
        <AutoLoadParams>
            <ext:Parameter Name="start" Value="0" Mode="Raw" />
            <ext:Parameter Name="limit" Value="5" Mode="Raw" />
        </AutoLoadParams>
        <SortInfo Field="LastName" Direction="ASC" />
        <Listeners>
            <LoadException Handler="Ext.MessageBox.alert('Load failed', response.statusText);" />
        </Listeners>
    </ext:Store>
    <ext:GridPanel ID="gv" runat="server" StoreID="Store1" Title="Columns" Header="false"
        Height="275">
        <ColumnModel ID="ColumnModel1" runat="server">
            <Columns>
                <ext:Column ColumnID="Name" DataIndex="Name" Header="Name" Width="250px">
                </ext:Column>
                <ext:Column ColumnID="Description" DataIndex="Description" Header="Description" Width="250px">
                </ext:Column>
                <ext:Column ColumnID="Percentage" DataIndex="Percentage" Header="Percentage %">
                </ext:Column>
                <ext:Column ColumnID="Active" DataIndex="Active" Header="Active">
                </ext:Column>
            </Columns>
        </ColumnModel>
        <SelectionModel>
            <ext:RowSelectionModel SingleSelect="true" ID="RowSelectionModel1" runat="server" />
        </SelectionModel>
        <LoadMask ShowMask="true" />
        <SaveMask ShowMask="true" />
        <BottomBar>
            <ext:Toolbar runat="server">
                <Items>
                <ext:Button runat="server" ID="btn" Text="Add New" Icon="New">
                        <DirectEvents>
                            <Click>
                                <ExtraParams>
                                    <ext:Parameter Name="Values" Value="Ext.encode(#{gv}.getRowsValues({selectedOnly:true}))"
                                        Mode="Raw" />
                                </ExtraParams>
                            </Click>
                        </DirectEvents>
                    </ext:Button>
                    <ext:Button runat="server" ID="btnEdit" Text="Edit" Icon="ServerEdit">
                        <DirectEvents>
                            <Click OnEvent="EditCoupon">
                                <ExtraParams>
                                    <ext:Parameter Name="Values" Value="Ext.encode(#{gv}.getRowsValues({selectedOnly:true}))"
                                        Mode="Raw" />
                                </ExtraParams>
                            </Click>
                        </DirectEvents>
                    </ext:Button>
                    <ext:Button runat="server" ID="btnDelete" Text="Delete" Icon="Delete">
                        <DirectEvents>
                            <Click OnEvent="DeleteCoupon">
                                <ExtraParams>
                                    <ext:Parameter Name="Values" Value="Ext.encode(#{gv}.getRowsValues({selectedOnly:true}))"
                                        Mode="Raw" />
                                </ExtraParams>
                                <Confirmation ConfirmRequest="true" Message="Are you sure you want to delete this coupon?" />
                            </Click>
                        </DirectEvents>
                    </ext:Button>
                </Items>
            </ext:Toolbar>
        </BottomBar>
    </ext:GridPanel>
    
    
    
    <style type="text/css">
        body
        {
            text-align: left;
        }
        .lblText
        {
            color: Black;
            font-weight: bold;
            font-size: 14px;
        }
    </style>
    <ext:Window ID="EntityDetailsWindow" Cls="lblText" runat="server" Icon="TableAdd"
        Width="1000" Height="500" Modal="true" AutoShow="false" Header="false" Hidden="true"
        Layout="Fit">
        <Items>
            <ext:TabPanel ID="tabEntityDetails" runat="server" ActiveTabIndex="0" Border="false"
                DeferredRender="false">
                <Items>
                    <ext:Panel ID="EntityDetailsTab" runat="server" Title="Basic Details" Icon="Table"
                        Padding="5">
                        <Items>
                            <ext:TextField ID="txtName" MaxLength="50" EnableKeyEvents="true" AllowBlank="false"
                                runat="server" FieldLabel="Name" Width="350">
                            </ext:TextField>
                            <ext:TextField ID="txtDescription" MaxLength="150" runat="server" AllowBlank="false"
                                FieldLabel="Description" Width="350" />
                            <ext:NumberField ID="txtPercentage" runat="server" FieldLabel="Percentage %" Width="200"
                                AllowDecimals="true" AllowBlank="false" AllowNegative="false">
                            </ext:NumberField>
                            <ext:CheckboxGroup Height="40" runat="server" FieldLabel="Tier Packages" ID="chkTierPackages" Width="400">
                             <Items>
                             </Items>
                            </ext:CheckboxGroup>
                            
                            
                            <ext:Checkbox runat="server" ID="chkOneTimeOnly" FieldLabel="One Time Use">
                            </ext:Checkbox>
                            <ext:Checkbox runat="server" ID="chkActive" FieldLabel="Active">
                            </ext:Checkbox>
                        </Items>
                    </ext:Panel>
                    <ext:Panel ID="CouponsTab" runat="server" Title="Coupons" Icon="BulletAdd" Padding="5"
                        Layout="Form">
                        <TopBar>
                            <ext:Toolbar ID="Toolbar1" runat="server">
                                <Items>
                                    <ext:Button ID="btnAdd" runat="server" Text="Refresh" Icon="Reload">
                                        <DirectEvents>
                                        </DirectEvents>
                                        <ToolTips>
                                            <ext:ToolTip ID="ToolTip2" runat="server" Html="Refresh" />
                                        </ToolTips>
                                    </ext:Button>
                                    <ext:ToolbarSpacer ID="ToolbarSpacer1" runat="server" />
                                    <ext:ToolbarSeparator ID="ctl122" />
                                    <ext:Button ID="btnProperties" runat="server" Icon="Add" Text="Add Properties">
                                        <Menu>
                                            <ext:Menu ID="mnuProperties" runat="server">
                                            </ext:Menu>
                                        </Menu>
                                        <ToolTips>
                                            <ext:ToolTip ID="ToolTip1" runat="server" Html="Add Properties" />
                                        </ToolTips>
                                    </ext:Button>
                                </Items>
                            </ext:Toolbar>
                        </TopBar>
                        <Content>
                        </Content>
                    </ext:Panel>
                </Items>
            </ext:TabPanel>
        </Items>
        <Buttons>
            <ext:Button ID="SaveButton" runat="server" Text="Save" Icon="Disk">
                <DirectEvents>
                    <Click OnEvent="SaveData" Failure="Ext.MessageBox.alert('Saving failed', 'Error during ajax event');">
                        <EventMask ShowMask="true" Target="CustomTarget" CustomTarget="={#{EntityDetailsWindow}.body}" />
                    </Click>
                </DirectEvents>
            </ext:Button>
            <ext:Button ID="CancelButton" runat="server" Text="Cancel" Icon="Cancel">
                <Listeners>
                    <Click Handler="alert('closing');#{EntityDetailsWindow}.hide(null);" />
                </Listeners>
            </ext:Button>
        </Buttons>
    </ext:Window>
    <ext:Hidden ID="lblID" runat="server" Hidden="true">
    </ext:Hidden>



    Server Side Code
    ------------------------------

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using fw;
    using fw.Tools;
    using fw.Tools.UI;
    using fw.Tools.Managers;
    using fw.Tools.DataHelper;
    using fw.Tools.DataGroups;
    using fw.Tools.DataElements;
    using fw.UI.WebControls.Elements;
    
    using bll = Comrange.Framework.bll;
    using cf.CTC.Marketing;
    using Ext.Net;
    using System.Collections.Generic;
    using System.Text;
    using cf.CTC.Catalog;
    
    
    
    public partial class Ctrl_ManageCoupons : BaseUIObject
    {
    
        public override void LoadObject(cf.CMS.UI_Object objectToLoad)
        {
    
            // TODO: Implement the logic of the custom module here.
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (IsPostBack) return;
             LoadInitialValues(null);
        
    
    
    
            //LoadColumns();
        }
    
    
    
    
    
        public void LoadColumns()
        {
            Collection<CouponType> couponTypes = CouponType.GetAllCouponTypes();
    
            couponTypes.Sort("Name");
            this.Store1.DataSource = couponTypes;
            this.Store1.DataBind();
    
    
    
            //gvColumns.DataSource = columns;
    
    
            // gvColumns.DataBind();
        }
    
    
        protected void EditColumn(object sender, DirectEventArgs e)
        {
            string ID = e.ExtraParams["ID"];
            string command = e.ExtraParams["Command"];
    
    
            if (!string.IsNullOrEmpty(ID) && !string.IsNullOrEmpty(command))
            {
                if (command.Equals("Delete"))
                {
    
                }
                else if (command.Equals("Edit"))
                {
    
                }
            }
    
    
    
    
    
        }
    
    
    
    
        protected void EditCoupon(object sender, DirectEventArgs e)
        {
            string values = e.ExtraParams["Values"];
            Guid ID = GetCouponID(values);
    
            if (ID != Guid.Empty)
            {
                CouponType type = cf.Database.Load<CouponType>(ID);
                // Edit 
                
                LoadData(type);
    
    
                this.EntityDetailsWindow.Show();
            }
            else
            {
                this.ShowMsg("Please select coupon first.");
    
            }
        }
    
    
        protected Guid GetCouponID(string values)
        {
            Dictionary<string, string>[] companies = JSON.Deserialize<Dictionary<string, string>[]>(values);
            Guid ID = Guid.Empty;
            //string ID = companies.;
            foreach (Dictionary<string, string> row in companies)
            {
                foreach (KeyValuePair<string, string> keyValuePair in row)
                {
                    if (keyValuePair.Key == "ID")
                    {
                        ID = new Guid(keyValuePair.Value);
                        return ID;
                    }
                }
            }
    
            return ID;
        }
    
        protected void DeleteCoupon(object sender, DirectEventArgs e)
        {
            string values = e.ExtraParams["Values"];
            Guid ID = GetCouponID(values);
    
            if (ID != Guid.Empty)
            {
                //Delete Coupon
            }
    
        }
    
    
    
    
        private void CancelDelete()
        {
    
        }
        private void CallDelete()
        {
    
        }
    
        protected void Page_Init(object sender, EventArgs e)
        {
        }
    
        protected void ShowDetails(object sender, DirectEventArgs e)
        {
        }
    
        public void SetValues(string tableName)
        {
    
            //this.lbltableName.Text = tableName;
            // LoadColumns();
        }
    
        protected void Store1_RefreshData(object sender, StoreRefreshDataEventArgs e)
        {
            LoadColumns();
        }
    
    
    
        protected void EditingFileColumn(bll.Column column)
        {
        }
    
    
        private void LoadInitialValues(CouponType type)
        {
    
            Collection<Product> tierPackages = Product.GetTierPackages();
            Collection<string> settings = new Collection<string>();
    
            if (type != null)
            {
                settings = type.GetCouponTypeSettingIDs();
            }
    
            foreach (Product tier in tierPackages)
            {
    
    
                if (settings.Contains(tier.ID.ToString()))
                {
                    chkTierPackages.Items.Add(new Checkbox
                    {
                        InputValue = tier.ID.ToString()
                    ,
                        Note = tier.CTCProduct.Description,
                        Value = true,
                        Checked = true
                    });
                    
                }
                else
                {
                    chkTierPackages.Items.Add(new Checkbox
                    {
                        InputValue = tier.ID.ToString()
                    ,
                        Note = tier.CTCProduct.Description,
                        Value = false,
                        Checked = false
                    });
                    
                }
    
    
            }
    
            
    
        }
    
    
        public void Show()
        {
    
            this.EntityDetailsWindow.Title = "Adding new coupons";
            this.CouponsTab.Disabled = true;
            this.EntityDetailsWindow.Show();
        }
    
    
        private void ShowError(string msg)
        {
    
            MessageBoxConfig config = new MessageBoxConfig();
            config.Icon = MessageBox.Icon.ERROR;
            config.Message = msg;
            config.Title = "Error(s)";
            config.Buttons = MessageBox.Button.OK;
            X.MessageBox.Alert("", "").Show(config);//"Error(s):", errorMsgs.ToString()).Show();
        }
    
    
        private void ShowMsg(string msg)
        {
    
            MessageBoxConfig config = new MessageBoxConfig();
            config.Icon = MessageBox.Icon.INFO;
            config.Message = msg;
            config.Title = "Message";
            config.Buttons = MessageBox.Button.OK;
            X.MessageBox.Alert("", "").Show(config);//"Error(s):", errorMsgs.ToString()).Show();
        }
    
    
        public void Show(Guid ID)
        {
    
            this.EntityDetailsWindow.Title = "Coupon Details";
    
            this.lblID.Text = ID.ToString();
            this.CouponsTab.Disabled = false;
            this.CouponsTab.Enabled = true;
            this.EntityDetailsWindow.Show();
    
        }
    
        protected void SaveData(object sender, DirectEventArgs e)
        {
            CouponType couponType = null;
    
            if (!string.IsNullOrEmpty(this.lblID.Text))
                couponType = cf.Database.Load<CouponType>(this.lblID.Text);
    
            couponType.Name = txtName.Text;
            couponType.Description = txtDescription.Text;
            couponType.Percentage = double.Parse(txtPercentage.Text);
            couponType.Active = chkActive.Checked;
            couponType.OneTimeOnly = chkOneTimeOnly.Checked;
    
            
    
            cf.Database.Save(couponType);
            SaveSettings(couponType);
    
            ShowMsg("Coupon Data Saved!");
    
    
        }
    
        private void SaveSettings(CouponType type)
        {
            
            
        }
    
        private void SaveSetting(Checkbox chkbox)
        {
    
        }
        private void LoadData(CouponType type)
        {
            
    
            txtName.Text = type.Name;
            txtDescription.Text = type.Description;
            txtPercentage.Text = type.Percentage.ToString();
            chkActive.Checked = type.Active;
            chkOneTimeOnly.Checked = type.OneTimeOnly;
    
            LoadInitialValues(type);
    
    
    
    
    
    
    
        }
    
    
    }
    Last edited by Daniil; May 25, 2011 at 4:54 PM. Reason: Please use [CODE] tags
  2. #2

Similar Threads

  1. Replies: 1
    Last Post: May 09, 2012, 7:08 PM
  2. Replies: 4
    Last Post: Feb 21, 2011, 10:02 PM
  3. Replies: 0
    Last Post: May 04, 2010, 7:08 AM
  4. Replies: 1
    Last Post: Mar 12, 2010, 9:36 AM
  5. Replies: 3
    Last Post: Jan 29, 2009, 5:32 PM

Tags for this Thread

Posting Permissions