public TLayout Display(Expression <Func <TModel, object> > expression) { var layout = new TLayout(); var accessor = expression.ToAccessor(); var request = _generator.GetRequest(accessor); layout.LabelTag = _generator.LabelFor(request); layout.BodyTag = _generator.DisplayFor(request); return(layout); }
public HtmlTag ToHtmlTag() { _htmlRoot = new HtmlTag("div").AddClass("KYT_editor_input"); if (_hide) { _htmlRoot.Hide(); } ElementRequest request = _generator.GetRequest(_expression); Action <SelectTag> action = x => { var value = request.RawValue; if (_items != null) { foreach (SelectListItem option in _items) { x.Option(option.Text, option.Value); } if (value != null && value.ToString().IsNotEmpty()) { x.SelectByValue(value.ToString()); } else { SelectListItem defaultOption = _items.FirstOrDefault(o => o.Selected); if (defaultOption != null) { x.SelectByValue(defaultOption.Value); } } } }; SelectTag tag = new SelectTag(action); string name = string.Empty; request.Accessor.Names.Each(x => name += x + "."); name = name.Substring(0, name.Length - 1); tag.Attr("name", name); addInternalCssClasses(_htmlRoot, tag); if (_elementId.IsNotEmpty()) { tag.Id(_elementId); } _htmlRoot.Child(tag); return(_htmlRoot); }
private ElementRequest elementRequest() { return(_tagGenerator.GetRequest(_accessor)); }
public FormLineExpression(ITagGenerator <T> tags, ILabelAndFieldLayout layout, Expression <Func <T, object> > expression) : this(tags, layout, tags.GetRequest(expression)) { }