Ejemplo n.º 1
0
            /// <summary>
            /// Recursively parse the information about the controls
            /// <para>Рекурсивно извлечь информацию об элементах управления</para>
            /// </summary>
            private void ParseControls(ControlCollection controls)
            {
                if (controls != null)
                {
                    foreach (Control control in controls)
                    {
                        if (control is WebControl)
                        {
                            // parse channel numbers from CSS class using the format "data cnl_N" or "data ctrl_N"
                            // извлечение номеров каналов из класса CSS имеющего формат "data cnl_N" или "data ctrl_N"
                            string cssClass = ((WebControl)control).CssClass.ToLower();

                            if (cssClass.StartsWith("data "))
                            {
                                int cnlNum = GetCnlNum(cssClass, " cnl_");
                                if (cnlNum > 0)
                                {
                                    InCnlSet.Add(cnlNum);
                                    InCnlBindings.Add(new CnlBinding(control, cnlNum));
                                }
                                else
                                {
                                    cnlNum = GetCnlNum(cssClass, " ctrl_");
                                    if (cnlNum > 0)
                                    {
                                        CtrlCnlSet.Add(cnlNum);
                                        CtrlCnlBindings.Add(new CnlBinding(control, cnlNum));
                                    }
                                }
                            }
                        }
                        ParseControls(control.Controls);
                    }
                }
            }
Ejemplo n.º 2
0
 /// <summary>
 /// Очистить представление
 /// </summary>
 public virtual void Clear()
 {
     Title = "";
     Path  = "";
     CnlList.Clear();
     CtrlCnlList.Clear();
     CnlSet.Clear();
     CtrlCnlSet.Clear();
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Добавить номер канала управления в множество и в список
 /// </summary>
 protected void AddCtrlCnlNum(int ctrlCnlNum)
 {
     if (ctrlCnlNum > 0 && CtrlCnlSet.Add(ctrlCnlNum))
     {
         int index = CtrlCnlList.BinarySearch(ctrlCnlNum);
         if (index < 0)
         {
             CtrlCnlList.Insert(~index, ctrlCnlNum);
         }
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Add control channel number to set and to list.
        /// </summary>
        protected void AddCtrlCnlNum(int ctrlCnlNum)
        {
            if (ctrlCnlNum <= 0 || !CtrlCnlSet.Add(ctrlCnlNum))
            {
                return;
            }

            int index = CtrlCnlList.BinarySearch(ctrlCnlNum);

            if (index < 0)
            {
                CtrlCnlList.Insert(~index, ctrlCnlNum);
            }
        }
Ejemplo n.º 5
0
 /// <summary>
 /// Определить, что канал управления используется в представлении
 /// </summary>
 public virtual bool ContainsCtrlCnl(int ctrlCnlNum)
 {
     return(CtrlCnlSet.Contains(ctrlCnlNum));
 }