- ABP Framework version: v8.0.3
- UI Type: Blazor Server
- Database System: EF Core (PostgreSQL)
- Tiered (for MVC) or Auth Server Separated (for Angular): no
I have generated basic CRUD actions for our objects using default templates. When there is a string property of an object marked for generation as a textarea, input that handles bound data to that property is generated as MemoEdit component from Blazorise library. However, I would like to have a different component in place of MemoEdit, which is RichTextEdit. Is there any way to modify or override the generation process to specify which component should be used? I know it can be done manually, but those changes will not persist when things change and also it wouldn't be applied globally.
7 Answer(s)
-
0
hi
https://docs.abp.io/en/commercial/latest/abp-suite/editing-templates
-
0
HI, I've read through documentation about editing templates prior to my post. I should have mentioned in there, sorry. The problem is that in my template called "Frontend.Blazor.Page.Item.razor.txt" is this block of code:
<Validations @ref="@Editing%%entity-name%%Validations" Mode="ValidationMode.Auto" Model="@Editing%%entity-name%%" ValidateOnLoad="false"> %%main-edit-tab-opener%% %%razor-modal-fields-edit%% %%main-tab-closer%% %%razor-modal-navigation-connection-fields-editing%% </Validations>%%tab-closer%%This seems to be responsible for a generation of this code from the app:
<Validations @ref="@NewPageValidations" Mode="ValidationMode.Auto" Model="@NewPage" ValidateOnLoad="false"\> <Validation MessageLocalizer="@LH.Localize"> <Field> <FieldLabel>@L["Title"] *</FieldLabel> <TextEdit @bind-Text="@NewPage.Title" > <Feedback> <ValidationError /> </Feedback> </TextEdit> </Field> </Validation> <Validation MessageLocalizer="@LH.Localize"> <Field> <FieldLabel>@L["PublishAt"]</FieldLabel> <DateEdit TValue="DateTime?" InputMode="DateInputMode.DateTime" @bind-Date="@NewPage.PublishAt" > <Feedback> <ValidationError /> </Feedback> </DateEdit> </Field> </Validation> <Validation MessageLocalizer="@LH.Localize"> <Field> <FieldLabel>@L["Content"] *</FieldLabel> <MemoEdit @bind-Text="@NewPage.Content" > <Feedback> <ValidationError /> </Feedback> </MemoEdit> </Field> </Validation> <Field> <FieldLabel>@L["Type"]</FieldLabel> <Select TValue="PageType" @bind-SelectedValue="@NewPage.Type" > @foreach (var itemValue in Enum.GetValues(typeof(PageType))) { <SelectItem TValue="PageType" Value="@((PageType) itemValue)"> @L[$"Enum:PageType.{((PageType) itemValue).ToString("d")}"] </SelectItem> } </Select> </Field> </Validations>What I acknowledge is that I'm able to edit the template to the point it would generate what I want, thanks to the present if branching a looping logic, but it feels like a really impractical solution to me. What I'm confused about the most are these variables:
%%main-edit-tab-opener%% %%razor-modal-fields-edit%% %%main-tab-closer%% %%razor-modal-navigation-connection-fields-editing%% -
0
What I acknowledge is that I'm able to edit the template to the point it would generate what I want, thanks to the present if branching a looping logic, but it feels like a really impractical solution to me. What I'm confused about the most are these variables:
%%main-edit-tab-opener%% %%razor-modal-fields-edit%% %%main-tab-closer%% %%razor-modal-navigation-connection-fields-editing%%%%main-edit-tab-opener%%-> this only creates an opening tab for the TabPanel component (<TabPanel Name="..">) on the code side.%%razor-modal-fields-edit%%-> this corresponds to the related field components and you can edit the related txt files such as Field.Text.txt, Field.DateTime.txt, Frontend.Blazor.Page.Partials.Modal.Field.Numeric.txt, Frontend.Blazor.Page.Partials.Modal.Field.Bool.txt and Frontend.Blazor.Page.Partials.Modal.Field.Enum.txt%%main-tab-closer%%-> This is just for the closing tag of the TabPanel component (</TabPanel>)%%razor-modal-navigation-connection-fields-editing%%-> This is for navigation connections and use the field components again. (So, you can edit the related txt files like in the%%razor-modal-fields-edit%%placeholder)
I will update the Editing Templates documentation.
Best Regards.
-
0
Hi, thank you very much for explanation, it is much more understandable for me now. I can see all of the field templates except the one used for TextArea. Templates in our solution are untouched.

I also tried to manually go through most of the templates, but I have not noticed the one, which would be responsible for generation of MemoEdit component.
-
0
Hi, thank you very much for explanation, it is much more understandable for me now. I can see all of the field templates except the one used for TextArea. Templates in our solution are untouched.

I also tried to manually go through most of the templates, but I have not noticed the one, which would be responsible for generation of MemoEdit component.
Hi, the
Frontend.Blazor.Page.Partials.Modal.Field.Text.txtcomponent is used for text areas. We replace theTextEditcomponent withMemoEditon the code side. when it's marked as "textarea". -
0
Hi, I see. Is there a way to change this behavior so that it is replaced with a different component?
-
0
Hi, I see. Is there a way to change this behavior so that it is replaced with a different component?
I'll create an internal issue for that, and try to implement it with 8.1.0-rc.2 or 8.1.0-rc.3.