public virtual void RenderBaseControl( HtmlTextWriter writer )
{
if ( this.Enabled )
{
writer.AddAttribute( "id", this.ClientID.ToString() );
writer.AddAttribute( "class", "picker picker-select rollover-container " + this.CssClass );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
_hfItemId.RenderControl( writer );
_hfInitialItemParentIds.RenderControl( writer );
_hfItemName.RenderControl( writer );
_hfItemRestUrlExtraParams.RenderControl( writer );
if ( !HidePickerLabel )
{
string pickerLabelHtmlFormat = @"
<a class='picker-label' href='#'>
<i class='{2} icon-fw'></i>
<span id='selectedItemLabel_{0}' class='selected-names'>{1}</span>
<b class='fa fa-caret-down pull-right'></b>
</a>";
writer.Write( pickerLabelHtmlFormat, this.ClientID, this.ItemName, this.IconCssClass );
writer.WriteLine();
_btnSelectNone.RenderControl( writer );
}
// picker menu
writer.AddAttribute( "class", "picker-menu dropdown-menu" );
if ( ShowDropDown )
{
writer.AddStyleAttribute( HtmlTextWriterStyle.Display, "block" );
}
writer.RenderBeginTag( HtmlTextWriterTag.Div );
// mode panel
if ( ModePanel != null )
{
ModePanel.RenderControl( writer );
}
// treeview
writer.Write(
@"<div id='treeview-scroll-container_{0}' class='scroll-container scroll-container-vertical scroll-container-picker'>
<div class='scrollbar'>
<div class='track'>
<div class='thumb'>
<div class='end'></div>
</div>
</div>
</div>
<div class='viewport'>
<div class='overview'>
<div id='treeviewItems_{0}' class='treeview treeview-items'></div>
</div>
</div>
</div>",
this.ClientID );
// picker actions
writer.AddAttribute( "class", "picker-actions" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
_btnSelect.RenderControl( writer );
writer.Write( "<a class='btn btn-xs btn-link picker-cancel' id='btnCancel_{0}'>Cancel</a>", this.ClientID );
// render any additional picker actions that a child class if ItemPicker implements
RenderCustomPickerActions( writer );
writer.WriteLine();
writer.RenderEndTag();
// closing div of picker-menu
writer.RenderEndTag();
// closing div of picker
writer.RenderEndTag();
RegisterJavaScript();
}
else
{
// this picker is not enabled (readonly), so just render a readonly version
writer.AddAttribute( "class", "picker picker-select" );
writer.RenderBeginTag( HtmlTextWriterTag.Div );
LinkButton linkButton = new LinkButton();
linkButton.CssClass = "picker-label";
linkButton.Text = string.Format( "<i class='{1}'></i><span>{0}</span>", this.ItemName, this.IconCssClass );
linkButton.Enabled = false;
linkButton.RenderControl( writer );
writer.WriteLine();
writer.RenderEndTag();
}
}