public async Task Process() { //create content IHtmlContent res = null; var model = tag.For.Model as IEnumerable; if (model == null) { res = new HtmlString(string.Empty); } else { int i = 0; var sb = new StringWriter(); foreach (var row in model) { var rowType = options.GetServerRow(row); if (rowType == null) { continue; } if (options.Type == GridType.Immediate) { (await rowType.InvokeDisplay(row, RowPrefix(i, rowType), helpers)).WriteTo(sb, HtmlEncoder.Default); } else { (await rowType.InvokeEdit(row, RowPrefix(i, rowType), helpers)).WriteTo(sb, HtmlEncoder.Default); } i++; } res = new HtmlString(sb.ToString()); } // //Create Layout options var layoutOptions = new DefaultServerGridLayoutOptions( helpers, options.Rows, options.Toolbars, options.LayoutTemplate, options.SubTemplates, res, options.Type, options.Id, options.FullName, options.ErrorMessages ?? defaultMessages, options.CssClass, tag.Caption, tag.LocalizationType, tag.QueryFor); // //Invoke Layout var fres = await options.LayoutTemplate.Invoke(tag.For, layoutOptions, helpers); output.TagName = string.Empty; output.Content.SetHtmlContent(fres); }
public async Task Process() { //create content IHtmlContent res = null; var model = tag.For.Model as IEnumerable; if (model == null) res = new HtmlString(string.Empty); else { int i = 0; var sb = new StringWriter(); foreach (var row in model) { var rowType = options.GetServerRow(row); if (rowType == null) continue; if (options.Type == GridType.Immediate) (await rowType.InvokeDisplay(row, RowPrefix(i, rowType), helpers)).WriteTo(sb, HtmlEncoder.Default); else (await rowType.InvokeEdit(row, RowPrefix(i, rowType), helpers)).WriteTo(sb, HtmlEncoder.Default); i++; } res = new HtmlString(sb.ToString()); } // //Create Layout options var layoutOptions = new DefaultServerGridLayoutOptions( helpers, options.Rows, options.Toolbars, options.LayoutTemplate, options.SubTemplates, res, options.Type, options.Id, options.FullName, options.ErrorMessages??defaultMessages, options.CssClass, tag.Caption, tag.LocalizationType); // //Invoke Layout var fres = await options.LayoutTemplate.Invoke(tag.For, layoutOptions, helpers); output.TagName = string.Empty; output.Content.SetHtmlContent(fres); }