private void AddEditRow <M>(RenderTreeBuilder pBuilder, MGridAction pAction, bool pIsFilterRow, M pValue) { var visibleColumns = ColumnsList.Where(c => c.ShouldRenderColumn).ToArray(); AddInlineTrHeight(pBuilder); pBuilder.OpenElement(577, "td"); pBuilder.AddAttribute(578, "colspan", visibleColumns.Length); pBuilder.OpenElement(580, "table"); pBuilder.OpenElement(581, "tbody"); pBuilder.OpenElement(582, "tr"); { pBuilder.OpenComponent <MForm <M> >(53); pBuilder.AddAttribute(587, nameof(MForm <M> .Model), pValue); pBuilder.AddAttribute(588, nameof(MForm <M> .IsInTableRow), true); pBuilder.AddAttribute(589, nameof(MForm <M> .Fields), (RenderFragment)((builder3) => { AddInlineFormFields(builder3, visibleColumns, pIsFilterRow); })); pBuilder.AddAttribute(594, nameof(MForm <M> .MFormGridContext), new MFormGridContext() { Action = pAction }); if (pIsFilterRow) { pBuilder.AddAttribute(601, nameof(MForm <M> .EnableValidation), false); pBuilder.AddAttribute(602, "data-is-filterrow", true); pBuilder.AddAttribute(604, nameof(MForm <M> .OnValueChanged), EventCallback.Factory.Create <MFormValueChangedArgs <ExpandoObject> >(this, OnFilterValueChanged)); } else { //T == M here pBuilder.AddAttribute(611, nameof(MForm <T> .OnValidSubmit), EventCallback.Factory.Create <MFormSubmitArgs>(this, async(a) => { await OnFormSubmit(a); })); pBuilder.AddAttribute(616, nameof(MForm <T> .OnValueChanged), EventCallback.Factory.Create <MFormValueChangedArgs <T> >(this, OnEditValueChanged)); pBuilder.AddComponentReferenceCapture(618, (__value) => { EditForm = (MForm <T>)__value; }); } pBuilder.CloseComponent(); } pBuilder.CloseElement(); //tr pBuilder.CloseElement(); //tbody pBuilder.CloseElement(); //table pBuilder.CloseElement(); //td }
private void AddContentRow(RenderTreeBuilder pBuilder, T pEntry, MGridAction pAction) { Guid entryId = GetId(pEntry); bool rowEdit = EditRow.HasValue && EditRow.Value == entryId; pBuilder.AddMarkupContent(503, "\r\n"); pBuilder.OpenElement(504, "tr"); string cssClass = "m-grid-row"; if (rowEdit) { cssClass += " m-grid-edit-row"; } bool selected = Selected.HasValue && Selected == entryId; if (selected) { cssClass += " m-grid-highlight"; } Formatter.AppendToTableRow(pBuilder, ref cssClass, pEntry, selected); pBuilder.AddAttribute(519, "class", cssClass); pBuilder.AddAttribute(522, "onclick", EventCallback.Factory.Create <MouseEventArgs>(this, (a) => { OnRowClick(pEntry, a); })); pBuilder.AddEventStopPropagationAttribute(527, "onclick", true); pBuilder.AddAttribute(530, "ondblclick", EventCallback.Factory.Create <MouseEventArgs>(this, async(a) => { await StartEditRow(pEntry, a); })); if (rowEdit) { EditValue = pEntry; AddEditRow(pBuilder, pAction, false, EditValue); } else { for (int i = 0; i < ColumnsList.Count; i++) { IMGridColumn column = ColumnsList[i]; if (!column.ShouldRenderColumn) { continue; } pBuilder.OpenElement(550, "td"); Formatter.AppendToTableRowData(pBuilder, column, pEntry); if (column is IMGridColumnGenerator <T> generator) { pBuilder.AddContent(556, generator.GenerateContent(pEntry)); } else if (column is IMGridPropertyColumn pc) { var iprop = mPropertyInfoCache[pc]; pBuilder.AddContent(561, Formatter.FormatPropertyColumnValue(pc, iprop, pEntry)); } pBuilder.CloseElement(); //td } } pBuilder.CloseElement(); //tr }