Exemplo n.º 1
0
        private void CustomizeASPxTabControl(ASPxTabControlBase tabControl)
        {
            ASPxPageControl pagecontrol = tabControl as ASPxPageControl;

            if (pagecontrol != null)
            {
                foreach (TabPage page in pagecontrol.TabPages)
                {
                    string propertyname = page.Name;
                    if (propertyname.Contains("_Group"))
                    {
                        propertyname = propertyname.Substring(0, propertyname.IndexOf("_Group"));
                    }

                    MemberInfo[] members = this.View.CurrentObject.GetType().GetMember(propertyname);
                    if (members.Length > 0)
                    {
                        object obj = XafTypesInfo.Instance.FindTypeInfo(this.View.CurrentObject.GetType()).FindMember(propertyname).GetValue(this.View.CurrentObject);
                        if (obj is ICollection)
                        {
                            if ((obj as ICollection).Count > 0)
                            {
                                page.Text = String.Format("{0} ({1})", this.View.FindItem(propertyname).Caption, (obj as ICollection).Count);
                                page.TabStyle.Font.Bold = HighlightOptions.BoldTabsWithCounts;
                            }
                        }
                        else if (obj != null)
                        {
                            page.TabStyle.Font.Bold = HighlightOptions.BoldTabsWithCounts;
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 执行页面的切换
        /// </summary>
        /// <param name="pageControl"></param>
        /// <param name="controls"></param>
        /// <param name="switchHandle"></param>
        public static void Switch <T>(
            this ASPxTabControlBase tabs, T[] controls,
            Action <int, T> switchHandle = null, Action <int, T> unloadHandle = null,
            int activeIndex = 0) where T : Control
        {
            // 加载中提示..
            tabs.ClientSideEvents.TabClick = "function(s,e){ISEx.loadingPanel.show();}";

            if (tabs is ASPxPageControl)
            {
                if (tabs.As <ASPxPageControl>().TabPages.Count != controls.Length)
                {
                    throw new ArgumentException("Controls count not matched with tab count.", "controls");
                }
            }

            if (tabs is ASPxTabControl)
            {
                if (tabs.As <ASPxTabControl>().Tabs.Count != controls.Length)
                {
                    throw new ArgumentException("Controls count not matched with tab count.", "controls");
                }
            }

            foreach (var c in controls)
            {
                c.Visible = false;
            }
            tabs.TabClick += (s, e) =>
            {
                for (int i = 0; i < controls.Length; i++)
                {
                    if (e.Tab.Index != i && unloadHandle != null)
                    {
                        unloadHandle(i, controls[i]);
                    }
                    controls[i].Visible = false;
                }
                controls[e.Tab.Index].Visible = true;
                if (switchHandle != null)
                {
                    switchHandle(e.Tab.Index, controls[e.Tab.Index]);
                }
            };

            if (activeIndex < 0 ||
                activeIndex >= controls.Length)
            {
                return;
            }
            tabs.ActiveTabIndex           = activeIndex;
            controls[activeIndex].Visible = true;
        }
Exemplo n.º 3
0
        private void TemplateContainer_Load(object sender, EventArgs e)
        {
            Control c = (Control)sender;

            c.Load -= TemplateContainer_Load;
            ASPxTabControlBase tabcontrol = FindFirstControl <ASPxTabControlBase>(c);

            if (tabcontrol != null)
            {
                tabControls.Add(tabcontrol);
                CustomizeASPxTabControl(tabcontrol);
            }
        }