Esempio n. 1
0
        private DropDownExtender CreateDropDownExtender(string labelId, string panelId)
        {
            var dropDownExt = new DropDownExtender
            {
                ID = ClientID + "_ddext",
                TargetControlID   = labelId,
                DropDownControlID = panelId
            };

            return(dropDownExt);
        }
Esempio n. 2
0
        protected override void CreateChildControls()
        {
            //Creo los controles internos
            Panel     = CreateDropDownPanel();
            SelectAll = CreateSelectAllPanel();
            var listContainerPanel = CreateScrollPanel();

            Label            = CreateLabel();
            CheckBoxList     = CreateCheckBoxList();
            DropDownExtender = CreateDropDownExtender(Label.ID, Panel.ID);

            //Agrego los controles al padre correspondiente
            Panel.Controls.Add(SelectAll);
            Panel.Controls.Add(listContainerPanel);
            listContainerPanel.Controls.Add(CheckBoxList);
            Controls.Add(Label);
            Controls.Add(Panel);
            Controls.Add(DropDownExtender);


            // !!!
            // Los scripts no se pueden crear hasta que los controles esten asignados a la pagina con Controls.Add
            // porque no se puede calcular el ClientID


            // Script que selecciona y deselecciona todos los elementos
            // Evita que se cierre el dropdown y actualiza el label
            SelectAll.Attributes.Add("onclick",
                                     string.Concat(StopPropagationScript,
                                                   string.Format(GetLabelScript, Label.ClientID),
                                                   ResetLabelScript,
                                                   GetElementsScript,
                                                   SetDoCheck,
                                                   "for(w in el){if(el[w].type=='checkbox'){el[w].checked=docheck;",
                                                   IfCheckedAddToLabelScript,
                                                   "}}",
                                                   SetAllStringScript,
                                                   SetLabelTitleScript));

            // Script que actualiza el label con todos los elementos seleccionados
            // Evita que se cierre el dropdown
            CheckBoxList.Attributes.Add("onclick",
                                        string.Concat(StopPropagationScript,
                                                      string.Format(GetLabelScript, Label.ClientID),
                                                      ResetLabelScript,
                                                      GetElementsScript,
                                                      "for(w in el)",
                                                      IfCheckedAddToLabelScript,
                                                      SetAllStringScript,
                                                      SetLabelTitleScript));

            CheckBoxList.SelectedIndexChanged += CheckBoxSelectedIndexChanged;
        }
Esempio n. 3
0
File: Menu.cs Progetto: t1b1c/lwas
        protected override void CreateChildControls()
        {
            base.CreateChildControls();

            labelWrapper          = new Panel();
            labelWrapper.ID       = "labelWrapper";
            labelWrapper.CssClass = "menu_label_wrapper";
            labelWrapper.Width    = this.Width;
            labelWrapper.Height   = this.Height;
            this.Controls.Add(labelWrapper);

            if (this.DisplayMode == BulletedListDisplayMode.HyperLink || !this.ActiveLabel)
            {
                label               = new Label();
                label.ID            = "label";
                label.CssClass      = "menu_label";
                ((Label)label).Text = this.Label;
            }
            else
            {
                label                      = new LinkButton();
                label.ID                   = "label";
                label.CssClass             = "menu_link";
                ((LinkButton)label).Click += (s, e) =>
                {
                    if (!this.BubblesMilestones)
                    {
                        OnMenuClick(this.Label, this.Argument);
                    }
                    else
                    {
                        OnMenuClick(this.CommandName, this.CommandArgument);
                    }
                };
                ((LinkButton)label).Text = this.Label;
            }
            if (null != this.LabelWidth)
            {
                label.Width = this.LabelWidth;
            }
            else
            {
                label.Width = this.Width;
            }
            if (null != this.LabelHeight)
            {
                label.Height = this.LabelHeight;
            }
            else
            {
                label.Height = this.Height;
            }
            labelWrapper.Controls.Add(label);

            commandsList.ID       = "commandsList";
            commandsList.CssClass = "menu_commands";
            commandsList.Style.Add("display", "none");
            commandsList.DisplayMode = this.DisplayMode;
            if (this.DisplayMode == BulletedListDisplayMode.LinkButton)
            {
                commandsList.Click += (s, e) =>
                {
                    ListItem item = commandsList.Items[e.Index];
                    if (null != item)
                    {
                        if (!this.BubblesMilestones)
                        {
                            OnMenuClick(item.Text, item.Value);
                        }
                        else
                        {
                            OnMenuClick(item.Value, this.CommandArgument);
                        }
                    }
                };
            }
            this.Controls.Add(commandsList);

            dropDownExtender    = new DropDownExtender();
            dropDownExtender.ID = "dropDownExtender";
            //dropDownExtender.BehaviorID = this.ID + "Behaviour";
            dropDownExtender.TargetControlID   = "labelWrapper";
            dropDownExtender.DropDownControlID = "commandsList";
            dropDownExtender.Enabled           = this.Enabled;
            this.Controls.Add(dropDownExtender);
            dropDownExtender.HighlightBackColor = System.Drawing.Color.Transparent;
        }
Esempio n. 4
0
        protected override void CreateChildControls()
        {
            Label = new Label
            {
                ID          = ClientID + "_label",
                Text        = "",
                Width       = Width,
                Height      = new Unit("17px"),
                BackColor   = Color.White,
                BorderStyle = BorderStyle.Solid,
                BorderWidth = new Unit("1px"),
                BorderColor = Color.Gray,
            };
            Label.Style.Add(HtmlTextWriterStyle.Overflow, "hidden");
            Label.Style.Add(HtmlTextWriterStyle.PaddingTop, "3px");
            Label.Style.Add(HtmlTextWriterStyle.WhiteSpace, "nowrap");


            var panel = new Panel
            {
                ID          = ClientID + "_panel",
                Width       = Width,
                BackColor   = Color.White,
                BorderStyle = BorderStyle.Solid,
                BorderWidth = new Unit("1px"),
                BorderColor = Color.Gray,
                ScrollBars  = ScrollBars.Auto
            };

            var panelAll = new Panel {
                ID = ClientID + "_panelAll", BackColor = Color.LightGray
            };

            panelAll.Font.Bold = true;
            panelAll.Style.Add(HtmlTextWriterStyle.Cursor, "pointer");
            panelAll.Style.Add(HtmlTextWriterStyle.Padding, "3px");
            panelAll.Controls.Add(new Literal {
                Text = "Todos"
            });

            CheckBox = new CheckBoxList {
                ID = ClientID + "_list"
            };

            foreach (ListItem item in Items)
            {
                CheckBox.Items.Add(item);
            }

            DropDownExtender = new DropDownExtender
            {
                ID = ClientID + "_ddext",
                TargetControlID   = Label.ID,
                DropDownControlID = panel.ID
            };

            panel.Controls.Add(panelAll);
            panel.Controls.Add(CheckBox);
            Controls.Add(Label);
            Controls.Add(panel);
            Controls.Add(DropDownExtender);

            panelAll.Attributes.Add("onclick", string.Format(
                                        @"event.stopPropagation();
                var label = $get('{0}');
                label.innerHTML = ''; 
                var el = this.parentNode.getElementsByTagName('input'); 
                var docheck = true;
                for(w in el) {{ if(el[w].checked) {{ docheck = false; break; }} }}
                for(w in el) {{ 
                    if(el[w].type == 'checkbox') {{ 
                        el[w].checked = docheck; 
                        if(docheck) 
                        {{
                            if(label.innerHTML != '') label.innerHTML += ', ';
                            label.innerHTML += el[w].nextSibling.innerHTML;
                        }}
                    }} 
                }}", Label.ClientID));

            CheckBox.Attributes.Add("onclick", string.Format(
                                        @"event.stopPropagation(); 
                var label = $get('{0}');
                label.innerHTML = ''; 
                var el = this.parentNode.getElementsByTagName('input'); 
                for(w in el) 
                    if(el[w].checked)
                    {{ 
                        if(label.innerHTML != '') label.innerHTML += ', ';
                        label.innerHTML += el[w].nextSibling.innerHTML;
                    }}
                ", Label.ClientID));
            CheckBox.SelectedIndexChanged += checkBox_SelectedIndexChanged;

            if (AutoPostback)
            {
                var pb = Page.ClientScript.GetPostBackEventReference(this, "");
                DropDownExtender.OnClientPopup =
                    @"function(el, args) 
                { 
                    if(!el.lastSelection)
                        el.add_hiding(function(el,args){ if(el.lastSelection != $get('" + Label.ClientID + @"').innerHTML) " + pb + @";});
                    el.lastSelection = $get('" + Label.ClientID + @"').innerHTML;
                }";
            }
        }
Esempio n. 5
0
        private void CellEdit(TableCell cell, string id, bool entrada, bool deleted, bool modified)
        {
            var idPanelText   = entrada ? "panelText" : "panelText2";
            var idPanelButton = entrada ? "panelButton" : "panelButton2";
            var idExt         = entrada ? "ext" : "ext2";
            var idBtAction    = entrada ? "btAction" : "btAction2";

            var module = Usuario.Modules[GetRefference()];

            var panelText   = cell.FindControl(idPanelText) as Panel;
            var panelButton = cell.FindControl(idPanelButton) as Panel;
            var ext         = cell.FindControl(idExt) as DropDownExtender;

            if (panelText == null)
            {
                panelText = new Panel {
                    ID = idPanelText
                };
                if (deleted)
                {
                    var img = new Image {
                        ImageUrl = "~/images/delete.png", ImageAlign = ImageAlign.AbsBottom
                    };
                    panelText.Controls.Add(img);
                    cell.ForeColor = Color.DarkRed;
                }
                else if (modified)
                {
                    var img = new Image {
                        ImageUrl = "~/images/page_white_edit.png", ImageAlign = ImageAlign.AbsBottom
                    };
                    panelText.Controls.Add(img);
                    cell.ForeColor = Color.DarkBlue;
                }

                panelText.Controls.Add(new Literal {
                    Text = " " + cell.Text
                });
                cell.Controls.Add(panelText);
            }

            if (panelButton == null && module.Delete)
            {
                panelButton = new Panel {
                    ID = idPanelButton
                };
                var btRestore = new Button {
                    ID = idBtAction, CommandName = deleted ? "Restore" : "Delete", CommandArgument = id, Text = deleted ? "Restaurar" : "Eliminar", OnClientClick = string.Format("return confirm(\"{0}\");", CultureManager.GetSystemMessage("CONFIRM_OPERATION"))
                };
                panelButton.Controls.Add(btRestore);
                cell.Controls.Add(panelButton);
            }

            if (ext == null && module.Edit || module.Delete)
            {
                ext = new DropDownExtender {
                    ID = idExt, TargetControlID = panelText.ID, DropDownControlID = panelButton.ID
                };
                cell.Controls.Add(ext);
            }

            var btAction = cell.FindControl(idBtAction) as Button;

            if (btAction != null)
            {
                btAction.Command += btRestore_Command;
            }
        }