Ejemplo n.º 1
0
        /// <summary>
        ///     Отрисовка контрола
        /// </summary>
        /// <param name="output"></param>
        public override void RenderControl(HtmlTextWriter output)
        {
            var currentAsm       = Assembly.GetExecutingAssembly();
            var linkedDocContent =
                currentAsm.GetManifestResourceStream("Kesco.Lib.Web.DBSelect.V4.LinkedDoc.LinkedDocContent.htm");

            if (linkedDocContent == null)
            {
                return;
            }
            var reader        = new StreamReader(linkedDocContent);
            var sourceContent = reader.ReadToEnd();

            sourceContent = sourceContent.Replace(_constIdTag, ID);

            if (_currentTypeSelectCtrl != null)
            {
                if (V4Page.V4IsPostBack)
                {
                    LoadDropDownListData();
                }

                using (TextWriter currentTypeSelectTextWriter = new StringWriter())
                {
                    var currentWriter = new HtmlTextWriter(currentTypeSelectTextWriter);
                    _currentTypeSelectCtrlText.RenderControl(currentWriter);
                    _currentTypeSelectCtrl.RenderControl(currentWriter);
                    sourceContent = sourceContent.Replace(_constCtrlTypeSelect, currentTypeSelectTextWriter.ToString());
                }
            }


            using (TextWriter currentRadioTextWriter = new StringWriter())
            {
                var currentWriter = new HtmlTextWriter(currentRadioTextWriter);
                _currentRadioCtrl.RenderControl(currentWriter);
                sourceContent = sourceContent.Replace(_constCtrlRadio, currentRadioTextWriter.ToString());
            }

            if (_currentDbSelectCtrl != null)
            {
                using (TextWriter currentDBSelectTextWriter = new StringWriter())
                {
                    var currentWriter = new HtmlTextWriter(currentDBSelectTextWriter);
                    _currentDbSelectCtrl.RenderControl(currentWriter);
                    sourceContent = sourceContent.Replace(_constCtrlDBSelect, currentDBSelectTextWriter.ToString());
                }
            }

            sourceContent = sourceContent.Replace("\n", "").Replace("\r", "").Replace("\t", "");
            output.Write(sourceContent);
            RefreshData();
        }
        /// <summary>
        ///     Отрисовка контрола
        /// </summary>
        /// <param name="w">Поток</param>
        protected override void RenderControlBody(TextWriter w)
        {
            if (IsReadOnly)
            {
                w.Write(Resx.GetString("lFrom") + "&nbsp;" + HttpUtility.HtmlEncode(ValueFrom) + "&nbsp;" +
                        Resx.GetString("lTo") +
                        "&nbsp;" + HttpUtility.HtmlEncode(ValueTo));
            }
            else
            {
                var isDay = InitPeriod(ValuePeriod);
                if (!IsOnlyPeriod)
                {
                    var period = new DropDownList
                    {
                        HtmlID      = ID + "Select",
                        ID          = ID + "Select",
                        Width       = Unit.Pixel(80),
                        V4Page      = V4Page,
                        ValueField  = "Name",
                        KeyField    = "Id",
                        TabIndex    = TabIndex,
                        NextControl = NextControl,
                        IsRequired  = IsRequired,
                        IsReadOnly  = true,
                        Help        = Help
                    };
                    FillDropDownList(period);
                    period.Value = ValuePeriod;

                    period.Changed += PeriodChanged;
                    V4Page.V4Controls.Add(period);
                    w.Write("<table cellspacing=\"0\" cellpadding=\"0\" class='{0}'>", CSSClass);
                    w.Write("<tr>");
                    w.Write("<td style=\"padding-bottom:3px\">");
                    w.Write(Resx.GetString("lPeriod") + ":&nbsp;</td><td Width='{0}px' style=\"padding-top:2px\">", period.Width.Value);
                    period.RenderControl(w);

                    w.Write("</td><td>");
                    if (ValuePeriod == ((int)PeriodsEnum.Custom).ToString(CultureInfo.InvariantCulture))
                    {
                        w.Write(
                            @"<img id=""periodTimePicker_datePrev_{0}"" src=""/STYLES/PagePrev.gif"" help=""{1}"" onclick=""return false;"" onmouseover=""return false;"" />",
                            ID, HttpUtility.HtmlEncode(Help));
                    }
                    else
                    {
                        w.Write(
                            @"<img onclick=""cmdasync('ctrl', '{0}' ,'cmd', 'prev');"" onmouseover=""v4ptp_mouseOver();""
id=""periodTimePicker_datePrev_{0}"" src=""/STYLES/PagePrevActive.gif"" tabindex=""{1}"" help=""{2}"" />", ID,
                            TabIndex,
                            HttpUtility.HtmlEncode(Help));
                    }
                    w.Write("</td>");
                }
                else
                {
                    w.Write("<table cellspacing=\"0\" cellpadding=\"0\" class='{0}'>", CSSClass);
                    w.Write("<tr>");
                }

                w.Write("<td id=\"" + ID + "lFrom\" style=\"padding-bottom:3px\">");
                w.Write(Resx.GetString("lFrom") + "&nbsp;");
                w.Write("</td><td>");

                var dpFrom = new DatePicker
                {
                    HtmlID     = ID + "From",
                    ID         = ID + "From",
                    V4Page     = V4Page,
                    IsDisabled = IsDisabled,
                    TabIndex   = TabIndex,
                    Value      = ValueFrom,
                    Help       = Help
                };
                var dpTo = new DatePicker
                {
                    HtmlID      = ID + "To",
                    ID          = ID + "To",
                    V4Page      = V4Page,
                    IsDisabled  = IsDisabled,
                    TabIndex    = TabIndex,
                    NextControl = NextControl,
                    Value       = ValueTo,
                    Help        = Help
                };
                dpFrom.NextControl = dpTo.ID;
                dpFrom.Changed    += DpFromChanged;
                V4Page.V4Controls.Add(dpFrom);
                dpFrom.RenderControl(w);

                w.Write("</td>");
                w.Write("<td id=\"" + ID + "lTo\" style=\"padding-bottom:3px\">&nbsp;" + Resx.GetString("lTo") +
                        "&nbsp;</td>");
                w.Write("<td id=\"" + ID + "dpTo\">");

                dpTo.Changed += DpToChanged;
                V4Page.V4Controls.Add(dpTo);
                dpTo.RenderControl(w);

                w.Write("</td>");
                if (!IsOnlyPeriod)
                {
                    w.Write("<td>");
                    if (ValuePeriod == ((int)PeriodsEnum.Custom).ToString(CultureInfo.InvariantCulture))
                    {
                        w.Write(
                            @"<img id=""periodTimePicker_dateNext_{0}"" src=""/STYLES/PageNext.gif"" help=""{1}"" onclick=""return false;"" onmouseover=""return false;"" />",
                            ID, HttpUtility.HtmlEncode(Help));
                    }
                    else
                    {
                        w.Write(
                            @"<img onclick=""cmdasync('ctrl', '{0}' ,'cmd', 'next');"" onmouseover=""v4ptp_mouseOver();""
id=""periodTimePicker_dateNext_{0}"" src=""/STYLES/PageNextActive.gif"" tabindex=""{1}"" help=""{2}"" />", ID,
                            TabIndex,
                            HttpUtility.HtmlEncode(Help));
                    }
                    w.Write("</td>");
                }

                w.Write("</tr></table>");
                if (isDay)
                {
                    w.Write("<script type=\"text/javascript\">hi('" + ID + "lFrom');hi('" + ID + "lTo');hi('" + ID +
                            "dpTo');</script>");
                }
            }
        }