public void RenderDataRow(BocListRenderingContext renderingContext, BocListRowRenderingContext rowRenderingContext, int rowIndex)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("rowRenderingContext", rowRenderingContext);

            var absoluteRowIndex = rowRenderingContext.SortedIndex;
            var originalRowIndex = rowRenderingContext.Row.Index;
            var businessObject   = rowRenderingContext.Row.BusinessObject;

            bool isChecked = rowRenderingContext.IsSelected;
            bool isOddRow  = (rowIndex % 2 == 0); // row index is zero-based here, but one-based in rendering => invert even/odd

            string cssClassTableRow  = GetCssClassTableRow(renderingContext, isChecked);
            string cssClassTableCell = CssClasses.GetDataCell(isOddRow);

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClassTableRow);
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            _indexColumnRenderer.RenderDataCell(renderingContext, originalRowIndex, absoluteRowIndex, cssClassTableCell);
            _selectorColumnRenderer.RenderDataCell(renderingContext, rowRenderingContext, cssClassTableCell);

            var dataRowRenderEventArgs = new BocListDataRowRenderEventArgs(originalRowIndex, businessObject, true, isOddRow);

            renderingContext.Control.OnDataRowRendering(dataRowRenderEventArgs);

            foreach (BocColumnRenderer renderer in renderingContext.ColumnRenderers)
            {
                renderer.RenderDataCell(renderingContext, rowIndex, dataRowRenderEventArgs);
            }

            renderingContext.Writer.RenderEndTag();
        }
        private string GetCssClassTableRow(
            BocListRenderingContext renderingContext,
            bool isChecked,
            BocListDataRowRenderEventArgs dataRowRenderEventArgs)
        {
            string cssClassTableRow = CssClasses.DataRow;

            if (dataRowRenderEventArgs.IsOddRow)
            {
                cssClassTableRow += " " + CssClasses.DataRowOdd;
            }
            else
            {
                cssClassTableRow += " " + CssClasses.DataRowEven;
            }

            if (!string.IsNullOrEmpty(dataRowRenderEventArgs.AdditionalCssClassForDataRow))
            {
                cssClassTableRow += " " + dataRowRenderEventArgs.AdditionalCssClassForDataRow;
            }

            if (isChecked && renderingContext.Control.AreDataRowsClickSensitive())
            {
                cssClassTableRow += " " + CssClasses.DataRowSelected;
            }

            return(cssClassTableRow);
        }
 public void RenderDataCell(
     BocColumnRenderingContext renderingContext,
     int rowIndex,
     bool showIcon,
     BocListDataRowRenderEventArgs dataRowRenderEventArgs)
 {
 }
        /// <summary>
        /// Renders a table cell for <see cref="BocColumnRenderingContext.ColumnDefinition"/> containing the appropriate data from the
        /// <see cref="IBusinessObject"/> contained in <paramref name="dataRowRenderEventArgs"/>
        /// </summary>
        /// <param name="renderingContext">The <see cref="BocColumnRenderingContext{BocColumnDefinition}"/>.</param>
        /// <param name="rowIndex">The zero-based index of the row on the page to be displayed.</param>
        /// <param name="showIcon">Specifies if an object-specific icon will be rendered in the table cell.</param>
        /// <param name="dataRowRenderEventArgs">Specifies row-specific arguments used in rendering the table cell.</param>
        /// <remarks>
        /// This is a template method. Deriving classes must implement <see cref="RenderCellContents"/> to provide the contents of
        /// the table cell (&lt;td&gt;) element.
        /// </remarks>
        protected virtual void RenderDataCell(
            BocColumnRenderingContext <TBocColumnDefinition> renderingContext,
            int rowIndex,
            bool showIcon,
            BocListDataRowRenderEventArgs dataRowRenderEventArgs)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            string cssClassTableCell = CssClasses.DataCell;

            if (!string.IsNullOrEmpty(renderingContext.ColumnDefinition.CssClass))
            {
                cssClassTableCell += " " + renderingContext.ColumnDefinition.CssClass;
            }
            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClassTableCell);
            if (_renderingFeatures.EnableDiagnosticMetadata)
            {
                AddDiagnosticMetadataAttributes(renderingContext);
            }
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);

            RenderCellContents(renderingContext, dataRowRenderEventArgs, rowIndex, showIcon);

            renderingContext.Writer.RenderEndTag();
        }
        /// <summary>
        /// Renders the cell contents depending on the <paramref name="dataRowRenderEventArgs"/>'s
        /// <see cref="BocListDataRowRenderEventArgs.IsEditableRow"/> property.
        /// <seealso cref="BocColumnRendererBase{TBocColumnDefinition}.RenderCellContents"/>
        /// </summary>
        /// <remarks>
        /// If the current row is being edited, "Save" and "Cancel" controls are rendered; if the row can be edited, an "Edit" control is rendered;
        /// if the row cannot be edited, an empty cell is rendered.
        /// Since the "Save", "Cancel" and "Edit" controls are structurally identical, their actual rendering is done by <see cref="RenderCommandControl"/>
        /// </remarks>
        protected override void RenderCellContents(
            BocColumnRenderingContext <BocRowEditModeColumnDefinition> renderingContext,
            BocListDataRowRenderEventArgs dataRowRenderEventArgs,
            int rowIndex,
            bool showIcon)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            bool isEditableRow    = dataRowRenderEventArgs.IsEditableRow;
            int  originalRowIndex = dataRowRenderEventArgs.ListIndex;
            var  businessObject   = dataRowRenderEventArgs.BusinessObject;
            bool isEditedRow      = renderingContext.Control.EditModeController.GetEditableRow(originalRowIndex) != null;

            if (isEditedRow)
            {
                RenderEditedRowCellContents(renderingContext, originalRowIndex, businessObject);
            }
            else if (isEditableRow)
            {
                RenderEditableRowCellContents(renderingContext, originalRowIndex, businessObject);
            }
            else
            {
                renderingContext.Writer.Write(c_whiteSpace);
            }
        }
 private void ChildrenList_DataRowRender(object sender, BocListDataRowRenderEventArgs e)
 {
     if (e.ListIndex == 3)
     {
         e.SetRowReadOnly();
     }
 }
Esempio n. 7
0
        protected void Initialize(bool withRowObjects)
        {
            base.Initialize();

            TypeWithReference businessObject;

            if (withRowObjects)
            {
                businessObject = TypeWithReference.Create(
                    TypeWithReference.Create("referencedObject1"),
                    TypeWithReference.Create("referencedObject2"));
                businessObject.ReferenceList = new[] { businessObject.FirstValue, businessObject.SecondValue };
            }
            else
            {
                businessObject = TypeWithReference.Create();
                businessObject.ReferenceList = new TypeWithReference[0];
            }
            BusinessObject = (IBusinessObject)businessObject;
            BusinessObject.BusinessObjectClass.BusinessObjectProvider.AddService <IBusinessObjectWebUIService>
                (new ReflectionBusinessObjectWebUIService());

            EventArgs = new BocListDataRowRenderEventArgs(10, (IBusinessObject)businessObject.FirstValue, false, true);

            InitializeMockList();
        }
        /// <summary>
        /// Renders a <see cref="DropDownMenu"/> with the options for the current row.
        /// <seealso cref="BocColumnRendererBase{TBocColumnDefinition}.RenderCellContents"/>
        /// </summary>
        /// <remarks>
        /// The menu title is generated from the <see cref="DropDownMenu.TitleText"/> and <see cref="DropDownMenu.TitleText"/> properties of
        /// the column definition in <see cref="BocColumnRenderingContext.ColumnDefinition"/>, and populated with the menu items in
        /// the <see cref="IBocList.RowMenus"/> property of <see cref="IBocList"/>.
        /// </remarks>
        protected override void RenderCellContents(
            BocColumnRenderingContext <BocDropDownMenuColumnDefinition> renderingContext,
            BocListDataRowRenderEventArgs dataRowRenderEventArgs,
            int rowIndex,
            bool showIcon)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            if (renderingContext.Control.RowMenus.Count <= rowIndex)
            {
                renderingContext.Writer.Write(c_whiteSpace);
                return;
            }

            var dropDownMenu = renderingContext.Control.RowMenus[rowIndex];

            if (renderingContext.Control.HasClientScript)
            {
                renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Onclick, c_onCommandClickScript);
            }
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Div); // Begin div

            dropDownMenu.Enabled = !renderingContext.Control.EditModeController.IsRowEditModeActive;

            dropDownMenu.TitleText = renderingContext.ColumnDefinition.MenuTitleText;
            dropDownMenu.TitleIcon = renderingContext.ColumnDefinition.MenuTitleIcon;
            dropDownMenu.RenderControl(renderingContext.Writer);

            renderingContext.Writer.RenderEndTag(); // End div
        }
Esempio n. 9
0
 protected override void RenderCellContents(
     BocColumnRenderingContext <StubColumnDefinition> renderingContext,
     BocListDataRowRenderEventArgs dataRowRenderEventArgs,
     int rowIndex,
     bool showIcon)
 {
     throw new NotImplementedException();
 }
 private void ChildrenList_DataRowRender(object sender, BocListDataRowRenderEventArgs e)
 {
   if (e.ListIndex == 3)
   {
     e.SetRowReadOnly();
     e.SetAdditionalCssClassForDataRow ("test");
   }
 }
Esempio n. 11
0
 protected override void RenderDataCell(
     BocColumnRenderingContext <StubColumnDefinition> renderingContext,
     int rowIndex,
     bool showIcon,
     BocListDataRowRenderEventArgs dataRowRenderEventArgs)
 {
     renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Td);
     renderingContext.Writer.RenderEndTag();
 }
 void IBocColumnRenderer.RenderDataCell(
     BocColumnRenderingContext renderingContext,
     int rowIndex,
     bool showIcon,
     BocListDataRowRenderEventArgs dataRowRenderEventArgs)
 {
     RenderDataCell(
         new BocColumnRenderingContext <TBocColumnDefinition> (renderingContext),
         rowIndex,
         showIcon,
         dataRowRenderEventArgs);
 }
        /// <summary>
        /// Renders a table cell for a <see cref="BocValueColumnDefinition"/>.
        /// </summary>
        protected override void RenderCellContents(
            BocColumnRenderingContext <TBocColumnDefinition> renderingContext,
            BocListDataRowRenderEventArgs dataRowRenderEventArgs,
            int rowIndex,
            bool showIcon)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            int             originalRowIndex = dataRowRenderEventArgs.ListIndex;
            IBusinessObject businessObject   = dataRowRenderEventArgs.BusinessObject;

            IEditableRow editableRow = renderingContext.Control.EditModeController.GetEditableRow(originalRowIndex);

            bool hasEditModeControl  = editableRow != null && editableRow.HasEditControl(renderingContext.ColumnIndex);
            bool showEditModeControl = hasEditModeControl && !editableRow.GetEditControl(renderingContext.ColumnIndex).IsReadOnly;

            string valueColumnText = null;

            if (!showEditModeControl)
            {
                valueColumnText = renderingContext.ColumnDefinition.GetStringValue(businessObject);
            }

            bool enforceWidth     = RenderCropSpanBeginTag(renderingContext, showEditModeControl, valueColumnText);
            bool isCommandEnabled = RenderBeginTag(renderingContext, originalRowIndex, businessObject, valueColumnText);

            if (!hasEditModeControl)
            {
                if (showIcon)
                {
                    RenderCellIcon(renderingContext, businessObject);
                }

                RenderOtherIcons(renderingContext, businessObject);
            }
            if (showEditModeControl)
            {
                RenderCellDataForEditMode(renderingContext, businessObject, editableRow);
            }
            else
            {
                RenderValueColumnCellText(renderingContext, valueColumnText);
            }

            RenderEndTag(renderingContext, isCommandEnabled);
            RenderCropSpanEndTag(renderingContext, enforceWidth);
        }
        public void RenderDataRow(BocListRenderingContext renderingContext, BocListRowRenderingContext rowRenderingContext, int rowIndex)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("rowRenderingContext", rowRenderingContext);

            var absoluteRowIndex = rowRenderingContext.SortedIndex;
            var originalRowIndex = rowRenderingContext.Row.Index;
            var businessObject   = rowRenderingContext.Row.BusinessObject;

            bool isChecked = rowRenderingContext.IsSelected;
            bool isOddRow  = (rowIndex % 2 == 0); // row index is zero-based here, but one-based in rendering => invert even/odd

            var dataRowRenderEventArgs = new BocListDataRowRenderEventArgs(
                originalRowIndex,
                businessObject,
                true,
                isOddRow);

            renderingContext.Control.OnDataRowRendering(dataRowRenderEventArgs);

            string cssClassTableRow  = GetCssClassTableRow(renderingContext, isChecked, dataRowRenderEventArgs);
            string cssClassTableCell = CssClasses.DataCell;

            renderingContext.Writer.AddAttribute(HtmlTextWriterAttribute.Class, cssClassTableRow);
            if (_renderingFeatures.EnableDiagnosticMetadata)
            {
                // Note: business objects without identity can already be selected via row index.
                var businessObjectWithIdentity = rowRenderingContext.Row.BusinessObject as IBusinessObjectWithIdentity;
                if (businessObjectWithIdentity != null)
                {
                    renderingContext.Writer.AddAttribute(DiagnosticMetadataAttributes.ItemID, businessObjectWithIdentity.UniqueIdentifier);
                }

                var oneBasedRowIndex = rowIndex + 1;
                renderingContext.Writer.AddAttribute(DiagnosticMetadataAttributesForObjectBinding.BocListRowIndex, oneBasedRowIndex.ToString());
            }
            renderingContext.Writer.RenderBeginTag(HtmlTextWriterTag.Tr);

            GetIndexColumnRenderer().RenderDataCell(renderingContext, originalRowIndex, absoluteRowIndex, cssClassTableCell);
            GetSelectorColumnRenderer().RenderDataCell(renderingContext, rowRenderingContext, cssClassTableCell);

            RenderDataCells(renderingContext, rowIndex, dataRowRenderEventArgs);

            renderingContext.Writer.RenderEndTag();
        }
        public void RenderCellWithInnerHtmlControl()
        {
            Column.Mode = BocCustomColumnDefinitionMode.ControlsInAllRows;

            IBocColumnRenderer renderer = new BocCustomColumnQuirksModeRenderer(new FakeResourceUrlFactory(), _bocListQuirksModeCssClassDefinition);
            var args = new BocListDataRowRenderEventArgs(20, EventArgs.BusinessObject, EventArgs.IsEditableRow, EventArgs.IsOddRow);

            renderer.RenderDataCell(_renderingContext, 0, false, args);

            var document = Html.GetResultDocument();
            var td       = Html.GetAssertedChildElement(document, "td", 0);

            Html.AssertAttribute(td, "class", _bocListQuirksModeCssClassDefinition.DataCellOdd);

            var span = Html.GetAssertedChildElement(td, "span", 0);

            Html.AssertAttribute(span, "onclick", "BocList_OnCommandClick();");
        }
Esempio n. 16
0
        public void RenderDataCell()
        {
            var dataRowRenderEventArgs = new BocListDataRowRenderEventArgs(0, null, true, true);

            _columnRenderMock.Expect(
                mock => mock.RenderDataCell(
                    Arg <BocColumnRenderingContext> .Matches(
                        rc =>
                        rc.HttpContext == _httpContextStub && rc.Control == _bocListStub && rc.Writer == _htmlTextWriterStub && rc.ColumnIndex == 0 &&
                        rc.ColumnDefinition == _columnDefinition),
                    Arg.Is(0),
                    Arg.Is(true),
                    Arg.Is(dataRowRenderEventArgs)));
            _columnRenderMock.Replay();

            _columnRendererAdapter.RenderDataCell(_renderingContext, 0, dataRowRenderEventArgs);

            _columnRenderMock.VerifyAllExpectations();
        }
        public void RenderEditable()
        {
            IBocColumnRenderer renderer = new BocRowEditModeColumnQuirksModeRenderer(new FakeResourceUrlFactory(), _bocListQuirksModeCssClassDefinition);

            EventArgs = new BocListDataRowRenderEventArgs(EventArgs.ListIndex, EventArgs.BusinessObject, true, EventArgs.IsOddRow);

            renderer.RenderDataCell(_renderingContext, 0, false, EventArgs);

            var document = Html.GetResultDocument();

            var td = Html.GetAssertedChildElement(document, "td", 0);

            Html.AssertAttribute(td, "class", _bocListQuirksModeCssClassDefinition.DataCellOdd);

            var a = Html.GetAssertedChildElement(td, "a", 0);

            Html.AssertAttribute(a, "id", List.ClientID + "_Column_0_RowEditCommand_Edit_Row_10");
            Html.AssertAttribute(a, "href", "#");
            Html.AssertAttribute(a, "onclick", "postBackEventReference;BocList_OnCommandClick();");
            Html.AssertTextNode(a, "Bearbeiten", 0);
        }
        public override void SetUp()
        {
            Column            = new BocRowEditModeColumnDefinition();
            Column.EditText   = "Bearbeiten";
            Column.SaveText   = "Speichern";
            Column.CancelText = "Abbrechen";
            Column.Show       = BocRowEditColumnDefinitionShow.Always;

            base.SetUp();

            EventArgs = new BocListDataRowRenderEventArgs(EventArgs.ListIndex, EventArgs.BusinessObject, true, EventArgs.IsOddRow);

            List.Stub(mock => mock.EnableClientScript).Return(true);
            List.Stub(mock => mock.IsDesignMode).Return(false);
            List.Stub(mock => mock.IsReadOnly).Return(false);
            List.DataSource.Mode = DataSourceMode.Edit;

            _bocListCssClassDefinition = new BocListCssClassDefinition();

            _renderingContext =
                new BocColumnRenderingContext <BocRowEditModeColumnDefinition> (new BocColumnRenderingContext(HttpContext, Html.Writer, List, Column, 0, 0));
        }
Esempio n. 19
0
        /// <summary>
        /// Renders a custom column cell either directly or by wrapping the contained controls, depending on <see cref="BocCustomColumnDefinition.Mode"/>
        /// and the current row state.
        /// </summary>
        /// <remarks>
        /// If the <see cref="BocCustomColumnDefinition.Mode"/> property of <see cref="BocColumnRenderingContext.ColumnDefinition"/> indicates that
        /// the custom cell does not contain any controls (<see cref="BocCustomColumnDefinitionMode.NoControls"/> or
        /// <see cref="BocCustomColumnDefinitionMode.ControlInEditedRow"/> when the current row is not being edited),
        /// a <see cref="BocCustomCellRenderArguments"/> object is created and passed to the custom cell's
        /// <see cref="BocCustomColumnDefinitionCell.RenderInternal"/> method.
        /// Otherwise, a click wrapper is rendered around the child control obtained from
        /// <see cref="IBocList"/>'s <see cref="IBocList.CustomColumns"/> property.
        /// </remarks>
        protected override void RenderCellContents(
            BocColumnRenderingContext <BocCustomColumnDefinition> renderingContext,
            BocListDataRowRenderEventArgs dataRowRenderEventArgs,
            int rowIndex,
            bool showIcon)
        {
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            int             originalRowIndex = dataRowRenderEventArgs.ListIndex;
            IBusinessObject businessObject   = dataRowRenderEventArgs.BusinessObject;
            bool            isEditedRow      = renderingContext.Control.EditModeController.IsRowEditModeActive &&
                                               renderingContext.Control.EditModeController.GetEditableRow(originalRowIndex) != null;

            if (renderingContext.ColumnDefinition.Mode == BocCustomColumnDefinitionMode.ControlsInAllRows ||
                (renderingContext.ColumnDefinition.Mode == BocCustomColumnDefinitionMode.ControlInEditedRow && isEditedRow))
            {
                RenderCustomCellInnerControls(renderingContext, originalRowIndex, rowIndex);
            }
            else
            {
                RenderCustomCellDirectly(renderingContext, businessObject, originalRowIndex);
            }
        }
        /// <summary>
        /// Renders a command control with an icon, text, or both.
        /// </summary>
        /// <remarks>
        /// A <see cref="BocCommandColumnDefinition"/> can contain both an object icon and a command icon. The former is rendered according to
        /// <paramref name="showIcon"/>, the latter if the column defintion's <see cref="BocCommandColumnDefinition.Icon"/> property contains
        /// an URL. Furthermore, the command text in <see cref="BocCommandColumnDefinition.Text"/> is rendered after any icons.
        /// </remarks>
        protected override void RenderCellContents(
            BocColumnRenderingContext <BocCommandColumnDefinition> renderingContext,
            BocListDataRowRenderEventArgs dataRowRenderEventArgs,
            int rowIndex,
            bool showIcon)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            int             originalRowIndex = dataRowRenderEventArgs.ListIndex;
            IBusinessObject businessObject   = dataRowRenderEventArgs.BusinessObject;

            IEditableRow editableRow = renderingContext.Control.EditModeController.GetEditableRow(originalRowIndex);

            bool hasEditModeControl = editableRow != null && editableRow.HasEditControl(renderingContext.ColumnIndex);

            bool isCommandEnabled = RenderBeginTag(renderingContext, originalRowIndex, businessObject);

            RenderCellIcon(renderingContext, businessObject, hasEditModeControl, showIcon);
            RenderCellCommand(renderingContext);

            RenderEndTag(renderingContext, isCommandEnabled);
        }
Esempio n. 21
0
        public void RenderBasicCell_WithNewLineAndEncoding()
        {
            IBocColumnRenderer renderer = new BocCompoundColumnRenderer(new FakeResourceUrlFactory(), RenderingFeatures.Default, _bocListCssClassDefinition);

            var renderArgs = new BocListDataRowRenderEventArgs(0, (IBusinessObject)TypeWithReference.Create("value\r\nExtraText<html>"), false, true);

            renderer.RenderDataCell(_renderingContext, 0, false, renderArgs);
            var document = Html.GetResultDocument();

            var td = Html.GetAssertedChildElement(document, "td", 0);

            Html.AssertAttribute(td, "class", _bocListCssClassDefinition.DataCell);

            var span = Html.GetAssertedChildElement(td, "span", 0);

            Html.AssertAttribute(span, "class", _bocListCssClassDefinition.Content);

            var textWrapper = Html.GetAssertedChildElement(span, "span", 0);

            Html.AssertTextNode(textWrapper, "value", 0);
            Html.GetAssertedChildElement(textWrapper, "br", 1);
            Html.AssertTextNode(textWrapper, "ExtraText<html>", 2); //This is actually encoded inside the asserted XmlDocument
        }
 /// <summary>
 /// Renders the contents of the table cell. It is called by <see cref="RenderDataCell"/> and should not be called by other clients.
 /// </summary>
 /// <param name="renderingContext">The <see cref="BocColumnRenderingContext{BocCOlumnDefinition}"/>.</param>
 /// <param name="dataRowRenderEventArgs">The row-specific rendering arguments.</param>
 /// <param name="rowIndex">The zero-based index of the row to render in <see cref="IBocList"/>.</param>
 /// <param name="showIcon">Specifies if the cell should contain an icon of the current <see cref="IBusinessObject"/>.</param>
 protected abstract void RenderCellContents(
     BocColumnRenderingContext <TBocColumnDefinition> renderingContext,
     BocListDataRowRenderEventArgs dataRowRenderEventArgs,
     int rowIndex,
     bool showIcon);
        public void RenderDataCell(BocRenderingContext <IBocList> renderingContext, int rowIndex, BocListDataRowRenderEventArgs dataRowRenderEventArgs)
        {
            ArgumentUtility.CheckNotNull("renderingContext", renderingContext);
            ArgumentUtility.CheckNotNull("dataRowRenderEventArgs", dataRowRenderEventArgs);

            var columnRenderingContext = new BocColumnRenderingContext(
                renderingContext.HttpContext,
                renderingContext.Writer,
                renderingContext.Control,
                ColumnDefinition,
                ColumnIndex,
                VisibleColumnIndex);

            _columnRenderer.RenderDataCell(columnRenderingContext, rowIndex, _showIcon, dataRowRenderEventArgs);
        }
 private void RenderDataCells(BocListRenderingContext renderingContext, int rowIndex, BocListDataRowRenderEventArgs dataRowRenderEventArgs)
 {
     foreach (BocColumnRenderer columnRenderer in renderingContext.ColumnRenderers)
     {
         columnRenderer.RenderDataCell(renderingContext, rowIndex, dataRowRenderEventArgs);
     }
 }