public void RenderBaseControl( HtmlTextWriter writer )
{
// set display on render (vs waiting for the javascript to do it after the page is loaded)
bool isLast = _ddlLastCurrent.SelectedValue == "0";
bool isCurrent = _ddlLastCurrent.SelectedValue == "1";
bool isDateRange = _ddlLastCurrent.SelectedValue == "2";
bool isPrevious = _ddlLastCurrent.SelectedValue == "4";
_nbNumber.Style[HtmlTextWriterStyle.Display] = ( isLast || isPrevious ) ? "block" : "none";
_ddlTimeUnitTypeSingular.Style[HtmlTextWriterStyle.Display] = ( isCurrent ) ? "block" : "none";
_ddlTimeUnitTypePlural.Style[HtmlTextWriterStyle.Display] = ( isLast || isPrevious ) ? "block" : "none";
_drpDateRange.Style[HtmlTextWriterStyle.Display] = ( isDateRange ) ? "block" : "none";
bool needsAutoPostBack = SelectedDateRangeChanged != null;
_ddlLastCurrent.AutoPostBack = needsAutoPostBack;
_ddlTimeUnitTypeSingular.AutoPostBack = needsAutoPostBack;
_ddlTimeUnitTypePlural.AutoPostBack = needsAutoPostBack;
// render a hidden element that will get its text from ~api/Utility/GetSlidingDateRangeTextValue (see slidingDateRangePicker.js)
writer.AddAttribute( "type", "hidden" );
writer.AddAttribute( "class", "js-slidingdaterange-text-value" );
writer.RenderBeginTag( HtmlTextWriterTag.Input );
writer.RenderEndTag();
writer.AddAttribute( "id", this.ClientID );
writer.AddAttribute( "class", "form-control-group" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
_ddlLastCurrent.RenderControl( writer );
_nbNumber.RenderControl( writer );
_ddlTimeUnitTypeSingular.RenderControl( writer );
_ddlTimeUnitTypePlural.RenderControl( writer );
_drpDateRange.RenderControl( writer );
if ( this.PreviewLocation == SlidingDateRangePicker.DateRangePreviewLocation.Right )
{
writer.WriteLine();
writer.AddAttribute( "class", "label label-info js-slidingdaterange-info slidingdaterange-info" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
writer.RenderEndTag();
}
writer.RenderEndTag();
RegisterJavaScript();
}