Skip to content

TelerikGrid with different data types #1004

Closed

Description

@jwalkerSSC

Hello,

I am trying to create a GRID for Blazor using the TelerikGrid. I get my list of items that can be tricky. We allow the users to setup User Defined field that can be a bit, decimal, date, int or text and give each on a unique name with the order that they should be displayed. i.e.. Amount1 - decimal - 1, Married - bit - 2, Year - date - 3. When I get the data and want to display it in the grid, I only want to allow them to add a value for each one, but the problem is that they can change the order that these come in. Could be Bit, then decimal, etc..

In my app, I have the following code:

<GridLayoutItem Row="24" Column="2" ColumnSpan="3" RowSpan="4">
    <TelerikGrid Data="@PersonUserFieldList" EditMode="@GridEditMode.Incell" Pageable="true" Width="330px"
            OnUpdate="@UpdatePhone" OnEdit="@EditPhone" OnCreate="@CreatePhone" OnCancel="@CancelPhone">
            <GridColumn Width="100px" Field=@nameof(UserDefinedFieldWithValues.column_name) Title="@TelerikMessages.Name">
                <EditorTemplate Context="ctx">
                    @{
                        var a = ctx as UserDefinedFieldWithValues;
                        if (a.DataType == "bit")
                        {
                            <TelerikCheckBox Class="myCheckBox" Enabled="true" Value="@a.BoolValue" />
                        }
                        if (a.DataType == "nvarchar(-1)")
                        {
                            <TelerikTextBox class="myTextBox1" @bind-Value="@a.TextValue"></TelerikTextBox>
                        }
                        if (a.DataType == "datetime")
                        {
                            <TelerikDatePicker Class="myDatePickerSmall" Min="@Min" Max="@Max" Format="d" DebounceDelay="@DebounceDelay"  @bind-Value="@a.DateValue"/>
                        }
                        if (a.DataType == "int")
                        {
                            <TelerikNumericTextBox Arrows="false" @bind-Value="@a.IntValue"/> 
                        }
                        if (a.DataType == "decimal(18,0)")
                        {
                            <TelerikNumericTextBox Arrows="false" @bind-Value="@a.DecimalValue"/> 
                        }
                    }
                </EditorTemplate>
            </GridColumn>
    </TelerikGrid>

    @*<TelerikListView Data="@PersonUserFieldList" Pageable="true" PageSize="5">
        <Template>
            @{
                UserDefinedField currItem = context as UserDefinedField;
                if (currItem.DataType == "bool")
                {
                    <div class="listview-item">                                            
                        <label class="mylabels1">@currItem.column_name</label> 
                        <
                    </div>
                }
            }
        </Template>
    </TelerikListView>*@

</GridLayoutItem>

When I run this, I get the following error:
Microsoft.AspNetCore.Components.Web.ErrorBoundary[0]
System.InvalidOperationException: Object of type 'Telerik.Blazor.Components.TelerikGrid`1[[TimeShareWare.Essentials.Shared.UserDefinedFields.UserDefinedFieldWithValues, TimeShareWare.Essentials.Shared, Version=3.0.0.0, Culture=neutral, PublicKeyToken=null]]' does not have a property matching the name 'ChildContent'.

Sample Date:
BoolValue = null;
column_name = "Amount1";
DataType = "decimal(18,0)';
DateValue = null;
DecimalValue = null;
DisplayOrder = 1;
IntValue = null;
TextValue = null;
UserFieldID = 18,
Visible = true;

Any thoughts on how I can get this to work? I want to put it into a grid or maybe a list view because the users can enter as many of these fields as they would like.

Activity

  1. linkdotnet commented on Feb 27, 2023

    @linkdotnet
    Collaborator

    Hey @jwalkerSSC

    as I am no expert with Telerik, there is a guideline for that: https://www.telerik.com/blogs/unit-testing-blazor-components-bunit-justmock

    Did you add Services.AddTelerikBlazor() also in your unit test?

  2. egil commented on Feb 28, 2023

    @egil
    Member

    hey @jwalkerSSC, im going to convert this to a QA discussion.

  3. locked and limited conversation to collaborators on Feb 28, 2023
  4. converted this issue into a discussion #1006 on Feb 28, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions