parall zones created dynamically

2 posts, 0 answers
  1. Golu
    Golu avatar
    41 posts
    Member since:
    Dec 2008

    Posted 25 May 2009 Link to this post

    Dear sir,


    I am creating fully customizes Dashboard.

    I am creating a RadDockZones dynamically successfuly.and I want to add zones on user demand.
    if user enter 1 row with 2 zones then it created 2 zones in a row if user enter 1 row with 1 zone then only single zone is added on a row.

    added 2 zoned in a row and give both zone names in dropdownlist, according to selected index change user add dock ( which zone name is seleted from DDL).
    I am trying but not getting i thnk missing something, will you please send me code ( but plz its fully dunamic)

    accoring to my code it created 2 zones parall but dock not added parall...plz check my code and loading panel also  not working. (I am remove all ajaxing all working on buttons click)

    sir plz answeing me ASAP our deadline is very very close.

    our code as follows..
    aspx..
    <table width="100%" border="1" cellpadding="1" cellspacing="0" class="aspxMainTable">
            <tr>
                <th class="tdMainHeader1">
                    <img alt="Customer" src="Images/dashboard.gif" />
                    Dashboard &nbsp;&nbsp;&nbsp;
                    <%--Zone Width :--%><telerik:RadTextBox ID="txtZoneWidth" runat="server" Width="150px"
                        Visible="false">
                    </telerik:RadTextBox>
                    &nbsp; Zone Layout
                    <telerik:RadComboBox ID="cmbZoneLayout" runat="server">
                        <Items>
                            <telerik:RadComboBoxItem Text="Select" Value="" Selected="true" />
                            <telerik:RadComboBoxItem Text="1 Row 1 column" Value="1,1" />
                            <telerik:RadComboBoxItem Text="1 Row 2 Column" Value="1,2" />
                        </Items>
                    </telerik:RadComboBox>
                    <asp:Button ID="btnAddZone" runat="server" Text="Add Zone" OnClick="btnAddZone_Click"
                        Width="100px" />
                    <%--OnClientClick="return ZoneWidthValidation();"--%>
                    Objects &nbsp;
                    <telerik:RadComboBox ID="cmbSelectDock" runat="server" Skin="Office2007">
                        <Items>
                            <telerik:RadComboBoxItem Text="Case Summary" Value="CaseSummary" />
                            <telerik:RadComboBoxItem Text="Task Summary" Value="TaskSummary" />
                            <telerik:RadComboBoxItem Text="Pending Tasks" Value="MyTask" />
                            <telerik:RadComboBoxItem Text="Pending Cases" Value="MyCase" />
                            <telerik:RadComboBoxItem Text="Overdue Cases" Value="OverdueCases" />
                        </Items>
                    </telerik:RadComboBox>
                    &nbsp;
                    <telerik:RadComboBox ID="cmbZone" runat="server" Skin="Office2007">
                    </telerik:RadComboBox>
                    &nbsp;
                    <asp:Button ID="btnAddDock" runat="server" Text="Add Dock" Width="100px" OnClick="btnAddDock_Click" /><%-- OnClientClick="return ValidateSave();"--%>
                    &nbsp;
                    <asp:Button ID="btnSaveDock" runat="server" Text="Save State" Width="100px" OnClick="btnSaveDock_Click" />
                </th>
            </tr>
            <tr>
                <td>
                    <telerik:RadDockLayout runat="server" ID="rdDockLayout" OnSaveDockLayout="rdDockLayout_SaveDockLayout"
                        Skin="Office2007" OnLoadDockLayout="rdDockLayout_LoadDockLayout">
                    </telerik:RadDockLayout>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Label ID="lblMessage" runat="server"></asp:Label>
                </td>
            </tr>
        </table>

    aspx.cs......
    int i = 0;
        int tempID;

        string dockState = "";
        string strDockTag = string.Empty;
        string strZone = string.Empty;
        string strZoneName = string.Empty;
        string strDockTagName = string.Empty;
        string strResult = string.Empty;

        DockStateWS objDockStateWS;
        DataSet dsDataSet;
        List<DockState> stateList;
        List<string> zoneList;
        StringBuilder serializedList = new StringBuilder();
        ArrayList zones = new ArrayList();

        private List<DockState> CurrentDockStates
        {
            get
            {
                List<DockState> _currentDockStates = (List<DockState>)Session["CurrentDockStatesMyPortal"];
                if (Object.Equals(_currentDockStates, null))
                {
                    _currentDockStates = new List<DockState>();
                    Session["CurrentDockStatesMyPortal"] = _currentDockStates;
                }
                return _currentDockStates;
            }
            set
            {
                Session["CurrentDockStatesMyPortal"] = value;
            }
        }

        private List<string> CurrentDockZoneIds
        {
            get
            {
                List<string> _currentDockZoneIds = (List<string>)Session["CurrentDockZoneIds"];
                if (Object.Equals(_currentDockZoneIds, null))
                {
                    _currentDockZoneIds = new List<string>();
                    Session["CurrentDockZoneIds"] = _currentDockZoneIds;
                }
                return _currentDockZoneIds;
            }
            set
            {
                Session["CurrentDockZoneIds"] = value;
            }
        }

        protected void Page_InIt(object sender, EventArgs e)
        {
            try
            {
                objDockStateWS = new DockStateWS();
                dsDataSet = new DataSet();

                dsDataSet = objDockStateWS.Fetch_Zones(0, 2,"1");

                if (dsDataSet.Tables["DockZones"].Rows.Count > 0)
                {
                    for (int i = 0; i < dsDataSet.Tables["DockZones"].Rows.Count; i++)
                    {
                        strZone = Convert.ToString(dsDataSet.Tables["DockZones"].Rows[i]["zone_control_id"]);
                        strZoneName = Convert.ToString(dsDataSet.Tables["DockZones"].Rows[i]["zone_control_name"]);                  
                        CreateRadDockZone(strZone,strZoneName);
                    }
                }

                for (int i = 0; i < CurrentDockStates.Count; i++)
                {
                    if (CurrentDockStates[i].Closed == false)
                    {
                        RadDock dock = CreateRadDockFromState(CurrentDockStates[i]);
                        rdDockLayout.Controls.Add(dock);
                        LoadWidget(dock);
                    }
                }
            }
            catch (Exception ex)
            {
                LogMessage(ex, 1, "Page_InIt");
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            //--counter for RadDockZone Name
            if (Convert.ToString(ViewState["Counter"]) == "")
            {
                tempID = 0;
            }
            else
            {
                tempID++;
            }

            if (!Page.IsPostBack)
            { 
                //-- from database
                try
                {
                    GetZones();
                }
                catch (Exception ex)
                {
                    ScriptManager.RegisterStartupScript(Page, Page.GetType(), "errMsg", "javascript:alert(\"Error:-Method -> 'Page_Init' \\n Description:- \\n" + ex.Message + "\");", true);
                    return;
                }
            }
        }

        protected void rdDockLayout_LoadDockLayout(object sender, DockLayoutEventArgs e)
        {
            bool bDocStateCreate = false;
           
            //--from database
            DataTable dt = new DataTable();       

            try
            {
                System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                //--use session
                foreach (DockState state in CurrentDockStates)
                {
                    bDocStateCreate = true;
                    e.Positions[state.UniqueName] = state.DockZoneID;
                    e.Indices[state.UniqueName] = state.Index;
                }

                if (bDocStateCreate == false)
                {
                    objDockStateWS = new DockStateWS();
                    dsDataSet = new DataSet();
                    dsDataSet = objDockStateWS.Fetch_Dock_State(0, 2);

                    if (dsDataSet.Tables["DockState"].Rows.Count > 0)
                    {
                        dockState = Convert.ToString(dsDataSet.Tables["DockState"].Rows[0]["dock_state"]);
                        string[] currentDockStates = dockState.Split('|');
                        foreach (string stringState in currentDockStates)
                        {
                            if (stringState.Trim() != string.Empty)
                            {
                                serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                                DockState state = serializer.Deserialize<DockState>(stringState);
                                RadDock dock = CreateRadDockFromState(state);
                                rdDockLayout.Controls.Add(dock);
                                LoadWidget(dock);
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogMessage(ex, 1, "rdDockLayout_LoadDockLayout");
            }
        }

        protected void rdDockLayout_SaveDockLayout(object sender, DockLayoutEventArgs e)
        {
            CurrentDockStates = rdDockLayout.GetRegisteredDocksState();
        }

        private RadDock CreateRadDockFromState(DockState state)
        {
            RadDock dock = new RadDock();
            dock.ID = string.Format("RadDock{0}", state.UniqueName);
            dock.ApplyState(state);
            dock.Command += new DockCommandEventHandler(dock_Command);
            dock.Commands.Add(new DockCloseCommand());
            dock.CommandsAutoPostBack = true;

            return dock;
        }

        void dock_Command(object sender, DockCommandEventArgs e)
        {
            if (e.Command.Name == "Close")
            {
    ////            ScriptManager.RegisterStartupScript
    ////            (
    ////                UpdatePanel1, this.GetType(), "RemoveDock",
    ////                string.Format(@"function _removeDock() {{
    ////                Sys.Application.remove_load(_removeDock);
    ////                $find('{0}').undock();
    ////                $get('{1}').appendChild($get('{0}'));
    ////                $find('{0}').doPostBack('DockPositionChanged');
    ////                }};
    ////                Sys.Application.add_load(_removeDock);", ((RadDock)sender).ClientID, UpdatePanel1.ClientID),
    ////                true
    ////             );
                ScriptManager.RegisterStartupScript
               (
                   Page, this.GetType(), "RemoveDock",
                   string.Format(@"function _removeDock() {{
                    Sys.Application.remove_load(_removeDock);
                    $find('{0}').undock();
                    $get('{1}').appendChild($get('{0}'));
                    $find('{0}').doPostBack('DockPositionChanged');
                    }};
                    Sys.Application.add_load(_removeDock);", ((RadDock)sender).ClientID, Page.ClientID),
                   true
                );

            }
        }

        private RadDock CreateRadDock()
        {
            RadDock dock = new RadDock();
            dock.UniqueName = Guid.NewGuid().ToString();
            dock.ID = string.Format("RadDock{0}", dock.UniqueName);
            dock.Title = cmbSelectDock.SelectedItem.Text;
            dock.Text = string.Format("Added at {0}", DateTime.Now);
            dock.CommandsAutoPostBack = true;

            return dock;
        }

        private void CreateRadDockZone(string id, string name)
        {
            try
            {
                #region test code
                ///dynamica table           
                //if (cmbZoneLayout.SelectedValue == "1,2")
                //{             
                        RadDockZone zone1 = new RadDockZone();
                        RadDockZone zone2 = new RadDockZone();
                        if (id != null )
                        {
                            if (name == "RadDockZone0")
                                zone1.ID = id;
                            else if (name == "RadDockZone1")
                                 zone2.ID = id;
                        }                   
                        else
                        {
                            zone1.UniqueName = "RadDockZone0";
                            zone1.ID = "RadDockZone0";
                            zone1.Width = Unit.Pixel(200);
                            zone1.FitDocks = true;
                            zone1.Orientation = Orientation.Horizontal;
                            zone1.Skin = "Office2007";
                            zone1.Style.Add("float", "left");
                            zone1.Style.Add("margin-right", "20px");

                            zone2.UniqueName = "RadDockZone1";
                            zone2.ID = "RadDockZone1";
                            zone2.Width = Unit.Pixel(200);
                            zone2.FitDocks = true;
                            zone2.Orientation = Orientation.Horizontal;
                            zone2.Skin = "Office2007";
                            zone2.Style.Add("float", "left");

                           
                            objDockStateWS = new DockStateWS();
                            dsDataSet = new DataSet();
                            if (zone1.ID != null)
                            {
                                dsDataSet = objDockStateWS.Save_Zone(0, 2, Convert.ToString(zone1.ID), "1", Convert.ToString(zone1.UniqueName));
                            }
                            if (zone2.ID != null)
                            {
                                dsDataSet = objDockStateWS.Save_Zone(0, 2, Convert.ToString(zone2.ID), "1", Convert.ToString(zone2.UniqueName));
                            }

                            //--if success          
                            if (dsDataSet.Tables["Response"].Rows[0]["ResultCode"].ToString() != "0")
                            {
                                strResult = dsDataSet.Tables["Response"].Rows[0]["ResultString"].ToString();
                                LogMessage(new Exception(strResult), 1, "CreateRadDockZone");
                                return;
                            }
                            else
                            {
                                RadComboBoxItem rdbItem = new RadComboBoxItem(zone1.UniqueName, zone1.ID);
                                cmbZone.Items.Insert(cmbZone.Items.Count, rdbItem);

                                RadComboBoxItem rdbItem2 = new RadComboBoxItem(zone2.UniqueName, zone2.ID);
                                cmbZone.Items.Insert(cmbZone.Items.Count, rdbItem2);
                            }
                        }
                        if (id != null)
                        {
                            if (name == "RadDockZone0")
                                rdDockLayout.Controls.Add(zone1);
                            else if (name == "RadDockZone1")
                                rdDockLayout.Controls.Add(zone2);
                        }
                        else
                        {
                            rdDockLayout.Controls.Add(zone1);
                            rdDockLayout.Controls.Add(zone2);
                        }
                       
                //}
            }
                #endregion

                #region original code
            //    RadDockZone zone1 = new RadDockZone();
            //    if (id != null)
            //    {
            //        zone1.ID = id;
            //    }
            //    else
            //    {
            //        zone1.UniqueName = "RadDockZone" + tempID;
            //        zone1.ID = "RadDockZone" + Guid.NewGuid();
            //        zone1.Width = Unit.Pixel(200);
            //        zone1.FitDocks = true;
            //        zone1.Orientation = Orientation.Horizontal;
            //        zone1.Skin = "Office2007";
            //        zone1.Style.Add("float", "left");
            //        zone1.Style.Add("margin-right", "20px");

            //        objDockStateWS = new DockStateWS();
            //        dsDataSet = new DataSet();

            //        dsDataSet = objDockStateWS.Save_Zone(0, 2, Convert.ToString(zone1.ID), "1", Convert.ToString(zone1.UniqueName));
            //        ViewState["Counter"] = tempID;

            //        //--if success          
            //        if (dsDataSet.Tables["Response"].Rows[0]["ResultCode"].ToString() != "0")
            //        {
            //            strResult = dsDataSet.Tables["Response"].Rows[0]["ResultString"].ToString();
            //            LogMessage(new Exception(strResult), 1, "CreateRadDockZone");
            //            return;
            //        }
            //        else
            //        {
            //            RadComboBoxItem rdbItem = new RadComboBoxItem(zone1.UniqueName, zone1.ID);
            //            cmbZone.Items.Insert(cmbZone.Items.Count, rdbItem);
            //        }
            //    }
            //    rdDockLayout.Controls.Add(zone1);
            //}
    #endregion
            catch (Exception ex)
            {
                LogMessage(ex, 1, "CreateRadDockZone");
            }
        }

        private void LoadWidget(RadDock dock)
        {
            if (string.IsNullOrEmpty(dock.Tag))
            {
                return;
            }
            Control widget = LoadControl(dock.Tag);
            dock.ContentContainer.Controls.Add(widget);
        }

        protected void btnAddDock_Click(object sender, EventArgs e)
        {
            try
            {
                LoadUserControlsDynamically();
                RadDock dock = CreateRadDock();
                RadDockZone dz = (RadDockZone)rdDockLayout.FindControl(Convert.ToString(cmbZone.SelectedValue));
               
                dz.Controls.Add(dock);
                dock.Tag = strDockTag;
                LoadWidget(dock);
            }
            catch (Exception ex)
            {
                LogMessage(ex, 1, "btnAddDock_Click");
            }
        }

        void LogMessage(Exception e, Int32 param, string strMethodName)
        {
            if (param == 1)
            {
                lblMessage.Text = e.Message + "  Method:- " + strMethodName;
                lblMessage.CssClass = "error";
            }
            else
            {
                lblMessage.Text = e.Message;
                lblMessage.CssClass = "success";
            }
        }

        private void LoadUserControlsDynamically()
        {
            string strControlID = string.Empty;

            if (cmbSelectDock.SelectedValue == "CaseSummary")
            {
                UserControls_Case_Summary_CustCateg_Chart uclCaseSummary_Chart = (UserControls_Case_Summary_CustCateg_Chart)Page.LoadControl("~/UserControls/Case_Summary_CustCateg_Chart.ascx");
                strControlID = "uclCaseSummary_Chart" + TB_nUserID;
                uclCaseSummary_Chart.GetCaseSummary();
                strDockTag = "UserControls/Case_Summary_CustCateg_Chart.ascx";
            }
            else if (cmbSelectDock.SelectedValue == "TaskSummary")
            {
                UserControls_Task_Summary_Chart uclTaskSummary_Chart = (UserControls_Task_Summary_Chart)Page.LoadControl("~/UserControls/Task_Summary_Chart.ascx");
                strControlID = "uclTaskSummary_Chart" + TB_nUserID;
                uclTaskSummary_Chart.GetTaskSummary();
                strDockTag = "~/UserControls/Task_Summary_Chart.ascx";
            }
            else if (cmbSelectDock.SelectedValue == "MyTask")
            {
                UserControls_MyTask uclMyTask = (UserControls_MyTask)Page.LoadControl("~/UserControls/MyTask.ascx");
                strControlID = "uclTask" + TB_nUserID;
                uclMyTask.GetTasks();
                strDockTag = "~/UserControls/MyTask.ascx";
            }
            else if (cmbSelectDock.SelectedValue == "MyCase")
            {
                UserControls_MyCase uclMyCase = (UserControls_MyCase)Page.LoadControl("~/UserControls/MyCase.ascx");
                strControlID = "uclCase" + TB_nUserID;
                uclMyCase.GetCases();
                strDockTag = "~/UserControls/MyCase.ascx";
            }
            else if (cmbSelectDock.SelectedValue == "OverdueCases")
            {
                UserControls_OverdueCases uclOverdueCases = (UserControls_OverdueCases)Page.LoadControl("~/UserControls/OverdueCases.ascx");
                strControlID = "uclOverdueCase" + TB_nUserID;
                uclOverdueCases.GetOverDueCases();
                strDockTag = "~/UserControls/OverdueCases.ascx";
            }
        }

        protected void btnSaveDock_Click(object sender, EventArgs e)
        {
            try
            {
                //--Save Dock states in Database
                System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
                stateList = rdDockLayout.GetRegisteredDocksState();

                while (i < stateList.Count)
                {
                    serializedList.Append(serializer.Serialize(stateList[i]));
                    serializedList.Append("|");
                    i++;
                }

                dockState = serializedList.ToString();
                if (dockState.Trim() != String.Empty)
                {
                    objDockStateWS = new DockStateWS();
                    dsDataSet = new DataSet();
                    dsDataSet = objDockStateWS.Save_Dock_State(0, 2, dockState);
                }
            }
            catch (Exception ex)
            {
                LogMessage(ex, 1, "btnSaveDock_Click");
            }
        }

        protected void btnAddZone_Click(object sender, EventArgs e)
        {
            CreateRadDockZone(null,null);
            zoneList = CurrentDockZoneIds;
        }

        private void GetZones()
        {
            objDockStateWS = new DockStateWS();
            dsDataSet = new DataSet();

            dsDataSet = objDockStateWS.Fetch_Zones(0, 2,"1");

            if (dsDataSet.Tables["DockZones"].Rows.Count > 0)
            {
                cmbZone.DataSource = dsDataSet;
                cmbZone.DataTextField = "zone_control_name";
                cmbZone.DataValueField = "zone_control_id";
                cmbZone.DataBind();
            }
        }

    thanks with regards
     

  2. Petio Petkov
    Admin
    Petio Petkov avatar
    825 posts

    Posted 27 May 2009 Link to this post

    Hi Neha,

    Please open a support ticket and send us a running project where we can observe the problem.Once we receive it we will do our best to help you.

    Kind regards,
    Petio Petkov
    the Telerik team

    Instantly find answers to your questions on the new Telerik Support Portal.
    Check out the tips for optimizing your support resource searches.
Back to Top