Example #1
0
		protected void InitializeControls() {
			this.panel = new Panel();

			Table table = new Table();
			try {
				TableRow row1, row2, row3;
				TableCell cell;
				table.Rows.Add(row1 = new TableRow());
				table.Rows.Add(row2 = new TableRow());
				table.Rows.Add(row3 = new TableRow());

				// top row, left cell
				cell = new TableCell();
				try {
					this.label = new HtmlGenericControl("label");
					this.label.InnerText = LabelTextDefault;
					cell.Controls.Add(this.label);
					row1.Cells.Add(cell);
				} catch {
					cell.Dispose();
					throw;
				}

				// top row, middle cell
				cell = new TableCell();
				try {
					cell.Controls.Add(new InPlaceControl(this));
					row1.Cells.Add(cell);
				} catch {
					cell.Dispose();
					throw;
				}

				// top row, right cell
				cell = new TableCell();
				try {
					this.loginButton = new Button();
					this.loginButton.ID = this.ID + "_loginButton";
					this.loginButton.Text = ButtonTextDefault;
					this.loginButton.ToolTip = ButtonToolTipDefault;
					this.loginButton.Click += this.LoginButton_Click;
					this.loginButton.ValidationGroup = ValidationGroupDefault;
#if !Mono
					this.panel.DefaultButton = this.loginButton.ID;
#endif
					cell.Controls.Add(this.loginButton);
					row1.Cells.Add(cell);
				} catch {
					cell.Dispose();
					throw;
				}

				// middle row, left cell
				row2.Cells.Add(new TableCell());

				// middle row, middle cell
				cell = new TableCell();
				try {
					cell.Style[HtmlTextWriterStyle.Color] = "gray";
					cell.Style[HtmlTextWriterStyle.FontSize] = "smaller";
					this.requiredValidator = new RequiredFieldValidator();
					this.requiredValidator.ErrorMessage = RequiredTextDefault + RequiredTextSuffix;
					this.requiredValidator.Text = RequiredTextDefault + RequiredTextSuffix;
					this.requiredValidator.Display = ValidatorDisplay.Dynamic;
					this.requiredValidator.ValidationGroup = ValidationGroupDefault;
					cell.Controls.Add(this.requiredValidator);
					this.identifierFormatValidator = new CustomValidator();
					this.identifierFormatValidator.ErrorMessage = UriFormatTextDefault + RequiredTextSuffix;
					this.identifierFormatValidator.Text = UriFormatTextDefault + RequiredTextSuffix;
					this.identifierFormatValidator.ServerValidate += this.IdentifierFormatValidator_ServerValidate;
					this.identifierFormatValidator.Enabled = UriValidatorEnabledDefault;
					this.identifierFormatValidator.Display = ValidatorDisplay.Dynamic;
					this.identifierFormatValidator.ValidationGroup = ValidationGroupDefault;
					cell.Controls.Add(this.identifierFormatValidator);
					this.errorLabel = new Label();
					this.errorLabel.EnableViewState = false;
					this.errorLabel.ForeColor = System.Drawing.Color.Red;
					this.errorLabel.Style[HtmlTextWriterStyle.Display] = "block"; // puts it on its own line
					this.errorLabel.Visible = false;
					cell.Controls.Add(this.errorLabel);
					this.examplePrefixLabel = new Label();
					this.examplePrefixLabel.Text = ExamplePrefixDefault;
					cell.Controls.Add(this.examplePrefixLabel);
					cell.Controls.Add(new LiteralControl(" "));
					this.exampleUrlLabel = new Label();
					this.exampleUrlLabel.Font.Bold = true;
					this.exampleUrlLabel.Text = ExampleUrlDefault;
					cell.Controls.Add(this.exampleUrlLabel);
					row2.Cells.Add(cell);
				} catch {
					cell.Dispose();
					throw;
				}

				// middle row, right cell
				cell = new TableCell();
				try {
					cell.Style[HtmlTextWriterStyle.Color] = "gray";
					cell.Style[HtmlTextWriterStyle.FontSize] = "smaller";
					cell.Style[HtmlTextWriterStyle.TextAlign] = "center";
					this.registerLink = new HyperLink();
					this.registerLink.Text = RegisterTextDefault;
					this.registerLink.ToolTip = RegisterToolTipDefault;
					this.registerLink.NavigateUrl = RegisterUrlDefault;
					this.registerLink.Visible = RegisterVisibleDefault;
					cell.Controls.Add(this.registerLink);
					row2.Cells.Add(cell);
				} catch {
					cell.Dispose();
					throw;
				}

				// bottom row, left cell
				cell = new TableCell();
				row3.Cells.Add(cell);

				// bottom row, middle cell
				cell = new TableCell();
				try {
					this.rememberMeCheckBox = new CheckBox();
					this.rememberMeCheckBox.Text = RememberMeTextDefault;
					this.rememberMeCheckBox.Checked = this.UsePersistentCookie != LogOnPersistence.Session;
					this.rememberMeCheckBox.Visible = RememberMeVisibleDefault;
					this.rememberMeCheckBox.CheckedChanged += this.RememberMeCheckBox_CheckedChanged;
					cell.Controls.Add(this.rememberMeCheckBox);
					row3.Cells.Add(cell);
				} catch {
					cell.Dispose();
					throw;
				}

				// bottom row, right cell
				cell = new TableCell();
				try {
					row3.Cells.Add(cell);
				} catch {
					cell.Dispose();
					throw;
				}

				// this sets all the controls' tab indexes
				this.TabIndex = TabIndexDefault;

				this.panel.Controls.Add(table);
			} catch {
				table.Dispose();
				throw;
			}

			this.idselectorJavascript = new Literal();
			this.panel.Controls.Add(this.idselectorJavascript);
		}
        /// <summary>
        /// Prepares the control hierarchy.
        /// </summary>
        protected virtual void PrepareControlHierarchy()
        {
            TableRow row = new TableRow();

            TableCell inputCell = new TableCell();
            inputCell.Controls.Add(txbValidateCodeInput);
            row.Cells.Add(inputCell);
            inputCell.Dispose();//释放资源

            TableCell imageCell = new TableCell();
            imageCell.Controls.Add(imgValidateCodeImage);
            row.Cells.Add(imageCell);
            imageCell.Dispose();//释放资源

            TableCell linkCell = new TableCell();
            linkCell.Controls.Add(linkRefreshValidateCode);
            row.Cells.Add(linkCell);
            linkCell.Dispose();//释放资源

            Controls.Add(row);
            row.Dispose();//释放资源
        }
        protected virtual void PrepareControlHierarchy()
        {
            switch (_enumPreViewPosition)
            {
                case PreViewPosition.Top:
                    TableRow rowPreview = new TableRow();
                    TableCell cellPreview = new TableCell();
                    cellPreview.ColumnSpan = 2;
                    cellPreview.Controls.Add(_imgPreView);
                    rowPreview.Cells.Add(cellPreview);
                    cellPreview.Dispose();//释放资源
                    Controls.Add(rowPreview);
                    rowPreview.Dispose();//释放资源

                    TableRow rowUpload = new TableRow();
                    TableCell cellUploadSelector = new TableCell();
                    cellUploadSelector.Controls.Add(_fileUpload);
                    rowUpload.Cells.Add(cellUploadSelector);
                    cellUploadSelector.Dispose();//释放资源

                    TableCell cellSaveButton = new TableCell();
                    cellSaveButton.Controls.Add(_btnSave);
                    rowUpload.Cells.Add(cellSaveButton);
                    cellSaveButton.Dispose();//释放资源
                    Controls.Add(rowUpload);

                    rowUpload.Dispose();//释放资源
                    break;
                case PreViewPosition.Right:
                    TableRow rowUpload1 = new TableRow();
                    TableCell cellUploadSelector1 = new TableCell();
                    cellUploadSelector1.Controls.Add(_fileUpload);
                    rowUpload1.Cells.Add(cellUploadSelector1);
                    cellUploadSelector1.Dispose();//释放资源

                    TableCell cellSaveButton1 = new TableCell();
                    cellSaveButton1.Controls.Add(_btnSave);
                    rowUpload1.Cells.Add(cellSaveButton1);
                    cellSaveButton1.Dispose();//释放资源
                    Controls.Add(rowUpload1);

                    TableCell cellPreview1 = new TableCell();
                    cellPreview1.Controls.Add(_imgPreView);
                    rowUpload1.Cells.Add(cellPreview1);
                    cellPreview1.Dispose();//释放资源
                    Controls.Add(rowUpload1);

                    rowUpload1.Dispose();//释放资源
                    break;
                case PreViewPosition.Bottom:
                    TableRow rowUpload2 = new TableRow();
                    TableCell cellUploadSelector2 = new TableCell();
                    cellUploadSelector2.Controls.Add(_fileUpload);
                    rowUpload2.Cells.Add(cellUploadSelector2);
                    cellUploadSelector2.Dispose();//释放资源

                    TableCell cellSaveButton2 = new TableCell();
                    cellSaveButton2.Controls.Add(_btnSave);
                    rowUpload2.Cells.Add(cellSaveButton2);
                    cellSaveButton2.Dispose();//释放资源
                    Controls.Add(rowUpload2);

                    rowUpload2.Dispose();//释放资源

                    TableRow rowPreview2 = new TableRow();
                    TableCell cellPreview2 = new TableCell();
                    cellPreview2.ColumnSpan = 2;
                    cellPreview2.Controls.Add(_imgPreView);
                    rowPreview2.Cells.Add(cellPreview2);
                    cellPreview2.Dispose();//释放资源
                    Controls.Add(rowPreview2);
                    rowPreview2.Dispose();//释放资源
                    break;
                case PreViewPosition.Left:
                    TableRow rowUpload3 = new TableRow();

                    TableCell cellPreview3 = new TableCell();
                    cellPreview3.Controls.Add(_imgPreView);
                    rowUpload3.Cells.Add(cellPreview3);
                    cellPreview3.Dispose();//释放资源
                    Controls.Add(rowUpload3);

                    TableCell cellUploadSelector3 = new TableCell();
                    cellUploadSelector3.Controls.Add(_fileUpload);
                    rowUpload3.Cells.Add(cellUploadSelector3);
                    cellUploadSelector3.Dispose();//释放资源

                    TableCell cellSaveButton3 = new TableCell();
                    cellSaveButton3.Controls.Add(_btnSave);
                    rowUpload3.Cells.Add(cellSaveButton3);
                    cellSaveButton3.Dispose();//释放资源
                    Controls.Add(rowUpload3);

                    rowUpload3.Dispose();//释放资源
                    break;
                default:
                    TableRow rowUpload4 = new TableRow();
                    TableCell cellUploadSelector4 = new TableCell();
                    cellUploadSelector4.Controls.Add(_fileUpload);
                    rowUpload4.Cells.Add(cellUploadSelector4);
                    cellUploadSelector4.Dispose();//释放资源

                    TableCell cellSaveButton4 = new TableCell();
                    cellSaveButton4.Controls.Add(_btnSave);
                    rowUpload4.Cells.Add(cellSaveButton4);
                    cellSaveButton4.Dispose();//释放资源
                    Controls.Add(rowUpload4);

                    TableCell cellPreview4 = new TableCell();
                    cellPreview4.Controls.Add(_imgPreView);
                    rowUpload4.Cells.Add(cellPreview4);
                    cellPreview4.Dispose();//释放资源
                    Controls.Add(rowUpload4);

                    rowUpload4.Dispose();//释放资源
                    break;
            }
        }
        public static void SetGridViewSortImages(object sender, GridViewRowEventArgs e, string sortExpression, string sortDirection, ImageClickEventHandler ascClickEventHandler, ImageClickEventHandler descClickEventHandler, string ascImageFilePath, string descImageFilePage, string headerTextCssClass)
        {
            if (e.Row != null && e.Row.RowType == DataControlRowType.Header)
            {
                int i = 0;
                foreach (TableCell tc in e.Row.Cells)
                {
                    if (tc.HasControls() || (tc.Text != string.Empty && tc.Text.Trim() != "&nbsp;"))
                    {
                        Table table = new Table(), imageTable = new Table();
                        table.CellPadding = 0;
                        table.CellSpacing = 0;
                        table.Style.Add(HtmlTextWriterStyle.VerticalAlign, "middle");
                        table.Attributes.Add("summary", "Header cell structual table");
                        imageTable.CellSpacing = 0;
                        imageTable.CellPadding = 0;
                        imageTable.Attributes.Add("summary", "Sort images structual table");
                        table.BorderStyle = BorderStyle.None;
                        imageTable.BorderStyle = BorderStyle.None;
                        TableRow row = null, AscImageRow, DescImageRow;
                        TableCell AscImageCell, DescImageCell, headerTextCell, imagesCell;

                        AscImageRow = new TableRow();
                        AscImageRow.BackColor = Color.Transparent;
                        AscImageCell = new TableCell();
                        AscImageCell.BorderWidth = new Unit(0);
                        AscImageCell.Style.Add(HtmlTextWriterStyle.Padding, "0");
                        AscImageCell.Style.Add(HtmlTextWriterStyle.Margin, "0");
                        AscImageRow.Cells.Add(AscImageCell);

                        DescImageRow = new TableRow();
                        DescImageRow.BackColor = Color.Transparent;
                        DescImageCell = new TableCell();
                        DescImageCell.BorderWidth = new Unit(0);
                        DescImageCell.Style.Add(HtmlTextWriterStyle.Padding, "0");
                        DescImageCell.Style.Add(HtmlTextWriterStyle.Margin, "0");
                        DescImageRow.Cells.Add(DescImageCell);

                        imagesCell = new TableCell();
                        imagesCell.Width = new Unit(1);
                        imagesCell.BorderWidth = new Unit(0);
                        imagesCell.Style.Add(HtmlTextWriterStyle.Padding, "0");
                        imagesCell.Style.Add(HtmlTextWriterStyle.Margin, "0");
                        imagesCell.Controls.Add(imageTable);

                        row = new TableRow();
                        row.BackColor = Color.Transparent;

                        headerTextCell = new TableCell();
                        headerTextCell.BorderWidth = new Unit(0);
                        headerTextCell.Style.Add(HtmlTextWriterStyle.Padding, "0");
                        headerTextCell.Style.Add(HtmlTextWriterStyle.Margin, "0");
                        headerTextCell.HorizontalAlign = HorizontalAlign.Left;
                        Label HeaderLabel = new Label();
                        HeaderLabel.CssClass = headerTextCssClass;
                        headerTextCell.Controls.Add(HeaderLabel);

                        if (tc.HasControls())
                        {
                            // search for the header link
                            LinkButton lnk = tc.Controls[0] as LinkButton;
                            if (lnk != null)
                            {
                                ImageButton imgBtnUp = new ImageButton();
                                ImageButton imgBtnDown = new ImageButton();
                                imgBtnUp.ID = "imgAsc" + i.ToString();
                                imgBtnDown.ID = "imgDesc" + i.ToString();
                                i++;
                                imgBtnUp.Click += new ImageClickEventHandler(ascClickEventHandler);
                                imgBtnDown.Click += new ImageClickEventHandler(descClickEventHandler);
                                imgBtnUp.CommandName = lnk.CommandName;
                                imgBtnDown.CommandName = lnk.CommandName;
                                imgBtnUp.CommandArgument = lnk.CommandArgument;
                                imgBtnDown.CommandArgument = lnk.CommandArgument;

                                //--set the properties
                                HeaderLabel.Text = lnk.Text.Trim();

                                imgBtnUp.ImageUrl = ascImageFilePath;
                                imgBtnUp.AlternateText = "ascending";
                                imgBtnDown.ImageUrl = descImageFilePage;
                                imgBtnDown.AlternateText = "descending";

                                //// checking if the header link is the user's choice
                                if (sortExpression != lnk.CommandArgument || sortDirection == "DESC")
                                {
                                    AscImageCell.Controls.Add(imgBtnUp);
                                    imageTable.Rows.Add(AscImageRow);
                                }
                                if (sortExpression != lnk.CommandArgument || sortDirection == "ASC")
                                {
                                    DescImageCell.Controls.Add(imgBtnDown);
                                    imageTable.Rows.Add(DescImageRow);
                                }

                                //--this will remove the clickable column header link button that is automatically created
                                //--when adding sorting capabilities to a gridview
                                tc.Controls.RemoveAt(0);

                                if (!AscImageCell.HasControls())
                                {
                                    AscImageCell.Dispose();
                                    AscImageRow.Dispose();
                                }
                                if (!DescImageCell.HasControls())
                                {
                                    DescImageCell.Dispose();
                                    DescImageRow.Dispose();
                                }
                                row.Cells.Add(imagesCell);
                                row.Cells.Add(headerTextCell);
                                table.Rows.Add(row);
                                tc.Style.Add(HtmlTextWriterStyle.VerticalAlign, "middle");
                                tc.Controls.Add(table);
                            }
                        }
                        else
                        {
                            imagesCell.Dispose();
                            HeaderLabel.Text = tc.Text;
                            headerTextCell.VerticalAlign = VerticalAlign.Middle;
                            row.Cells.Add(headerTextCell);
                            table.Rows.Add(row);
                            tc.Style.Add(HtmlTextWriterStyle.VerticalAlign, "middle");
                            tc.Controls.Add(table);
                        }
                    }
                }
            }
        }