Пример #1
0
        public PropertyVM Create <Te, Tp>(Expression <Func <Te, Tp> > selector,
                                          object instance)
        {
            var propertyInfo =
                ExpressionUtils.GetPropertyInfo(selector);
            var propertyName = ExpressionUtils.GetPropertyName(selector);

//            var value = selector.Compile().Invoke((Te) _htmlHelper.ViewData.Model);
            return(Create <Tp>(propertyName, propertyInfo, instance));
        }
Пример #2
0
        public static TagBuilder LabelFor <Te, Tp>(this HtmlHelper <Te> htmlHelper,
                                                   Expression <Func <Te, Tp> > selector) where Te : class
        {
            var propertyInfo = ExpressionUtils.GetPropertyInfo(selector);
            var builder      = new ExTagBuilder("label");

            builder.Attributes.Add("for", ExpressionUtils.GetPropertyName(selector));
            builder.InnerHtml =
                Config.DescriptionProvider.GetProperty(propertyInfo,
                                                       htmlHelper.ViewData.Model).DisplayName;
            return(builder);
        }
Пример #3
0
        public void AddColumns <T>(AjaxGridVM model,
                                   params Expression <Func <T, object> >[] selectors)
        {
            var metaData = MetaDataProvider.Get(typeof(T)).GetProperties();
            var columns  = new Dictionary <string, AjaxGridVM.Column>();

            foreach (var selector in selectors)
            {
                var info = ExpressionUtils.GetPropertyInfo(selector);
                var meta = metaData.First(x => x.Info == info);
                columns.Add(meta.DisplayName(), new AjaxGridVM.Column(info.Name));
            }
            model.ColumnTitles.AddRange(columns.Select(x => x.Key));
            model.Columns.AddRange(columns.Select(x => x.Value));
        }