public virtual CellWriter SelectCell <T, TValue>(IHtmlHelper <T> helper, Expression <Func <T, TValue> > exp, Lister source, string displayMember, string valueMember, bool required, bool multi, object cellAttributes, object inputAttr, string classes, bool nullable, string rowIndex)
        {
            var writer = new CellWriter(helper);

            writer.UseExpression(exp);
            writer.Initialize(null, null, cellAttributes, inputAttr, classes);
            writer.InputModel = writer.InputModel.GetSelectInput(source.IsLookup ? "Lookups." + source.ListName : source.ListName, displayMember, valueMember, multi, nullable);
            if (required)
            {
                writer.UseValidation(helper.VCollection().AddRequired(), rowIndex: rowIndex);
            }
            return(writer);
        }
        public virtual CellWriter TextBoxCell <T, TValue>(IHtmlHelper <T> helper, Expression <Func <T, TValue> > exp, string textBoxType, string rowIndex, IValidationCollection coll, object cellAttributes, object inputAttr, string classes)
        {
            var writer = new CellWriter(helper);

            writer.UseExpression(exp);

            writer.InputModel.TextBoxType = textBoxType;
            writer.InputModel.RowIndex    = rowIndex;
            writer.Initialize(null, null, cellAttributes, inputAttr, classes);
            if (coll != null)
            {
                writer.UseValidation(coll, rowIndex: rowIndex);
            }
            return(writer);
        }