protected void BuildRenderInput_RenderRadioItem(RenderTreeBuilder builder, int index) { var item = itemsToRender[index]; if (item != null) { bool selected = (index == selectedItemIndex); if (selected) { chipValue = SelectorHelpers.GetText(TextSelectorImpl, item); } string inputId = GroupName + "_" + index.ToString(); builder.OpenElement(100, "div"); // TODO CoreCssClass builder.AddAttribute(101, "class", CssClassHelper.Combine("form-check", this.Inline ? "form-check-inline" : null)); builder.OpenElement(200, "input"); builder.AddAttribute(201, "class", "form-check-input"); builder.AddAttribute(202, "type", "radio"); builder.AddAttribute(203, "name", GroupName); builder.AddAttribute(204, "id", inputId); builder.AddAttribute(205, "value", index.ToString()); builder.AddAttribute(206, "checked", selected); builder.AddAttribute(207, "disabled", !CascadeEnabledComponent.EnabledEffective(this)); int j = index; builder.AddAttribute(208, "onclick", EventCallback.Factory.Create(this, () => HandleInputClick(j))); builder.AddEventStopPropagationAttribute(209, "onclick", true); builder.AddMultipleAttributes(250, this.AdditionalAttributes); builder.CloseElement(); // input builder.OpenElement(300, "label"); builder.AddAttribute(301, "class", "form-check-label"); builder.AddAttribute(302, "for", inputId); if (ItemTemplateImpl != null) { builder.AddContent(303, ItemTemplateImpl(item)); } else { builder.AddContent(304, SelectorHelpers.GetText(TextSelectorImpl, item)); } builder.CloseElement(); // label builder.CloseElement(); // div } }
/// <inheritdoc /> protected override async Task OnAfterRenderAsync(bool firstRender) { await base.OnAfterRenderAsync(firstRender); if (firstRender) { // when no tab is active after initial render, activate the first visible & enabled tab if (!tabsList.Any(tab => IsActive(tab)) && (tabsList.Count > 0)) { HxTab tabToActivate = tabsList.FirstOrDefault(tab => CascadeEnabledComponent.EnabledEffective(tab) && tab.Visible); if (tabToActivate != null) { await SetActiveTabIdAsync(tabToActivate.Id); } } } }