Blazor .Net 7
I have the following TelerikListView. When the user changes the TelerikTextBox Cidr value I want to handle the ValueChanged event however when I do this, I need to update the underlying model object manually. I am stuck. When the TelerikListView is in edit mode, either for a new element or for an existing element I can't figureout how to reference the element correctly in the ValueChanged event handler. I know I need to update the model manually but I am not sure how. Any hints?
<TelerikListView Data="@SubnetList" Width="700px" Pageable="true"
OnCreate="@CreateHandler" OnDelete="@DeleteHandler" OnUpdate="@UpdateHandler"
OnEdit="@EditHandler" OnCancel="@CancelHandler">
<HeaderTemplate>
<h2>Subnet List</h2>
<ListViewCommandButton Command="Add" Icon="@FontIcon.Plus">Add Subnet</ListViewCommandButton>
</HeaderTemplate>
<Template>
<div class="listview-item">
<h4>@context.Cidr</h4>
<ListViewCommandButton Command="Edit" Icon="@FontIcon.Pencil">Edit</ListViewCommandButton>
<ListViewCommandButton Command="Delete" Icon="@FontIcon.Trash">Delete</ListViewCommandButton>
</div>
</Template>
<EditTemplate>
<div style="border: 1px solid green; margin: 10px; padding: 10px; display: inline-block;">
<TelerikFloatingLabel Text="CIDR">
<TelerikTextBox Id="Cidr" ValueChanged="@CidrValueChangedHandler" />
</TelerikFloatingLabel><br />
<ListViewCommandButton Command="Save" Icon="@FontIcon.Save">Save</ListViewCommandButton>
<ListViewCommandButton Command="Cancel" Icon="@FontIcon.Cancel">Cancel</ListViewCommandButton>
</div>
</EditTemplate>
</TelerikListView>
@code {
private List<Models.Subnet> SubnetList = new List<Models.Subnet>();
protected override async Task OnInitializedAsync()
=> SubnetList = await SubnetService.GetAllAsync();
private void CidrValueChangedHandler(string theUserInput)
{
// manually update the model here
// calculate subnet properties here to help the user select size the subnet
// correctly by selecting the number of bits in the network side of the mask
// # number of hosts, etc.
}
async Task GetListViewData()
=> SubnetList = await SubnetService.GetAllAsync();
}