I have a question about duplicating Razor pages.
I found this code on Youtube and tried myself. And having a hard time founding a way to access a parameter (taskList).
ToDos (Test pages)
@page "/Todo"
<div class="row">
<div class="col-6">
<Todo Headername="Daily Task"></Todo>
</div>
<div class="col-6">
<Todo Headername="Monthly Task"></Todo>
</div>
</div>
<div>
<!-- I want to print out both List parameter value on the page!! -->
</div>
@code {
}
Todo(Components)
@page "/Tests"
<h3>@Headername</h3>
<!-- Edit form-->
<EditForm Model="task" class="form-inline" OnValidSubmit="AddTask">
<input type="text" class="form-control mx-2" @bind-value="task.TaskName" />
<button class="btn btn-outline-primary mx-2">Add Task</button>
</EditForm>
<div class="progress-bar my-2" role="progressbar" style="width:@(PercentageCompleted)%" aria-valuemax="100" aria-valuemin="0">
@(PercentageCompleted)%
</div>
<ul class="list-group" my-2>
@foreach (var taskitem in taskList)
{
if (taskitem.IsComplete)
{
<!--Task Completed-->
<li class="list-group-item list-group-item-success mx-1" @onclick="(()=>taskitem.IsComplete = task.IsComplete)"> <del>@taskitem.TaskName</del></li>
}
else
{
<!--Task Not Completed-->
<li class="list-group-item list-group-item-secondary mx-1" @onclick="(()=>taskitem.IsComplete = !task.IsComplete)">@taskitem.TaskName</li>
}
}
</ul>
@code {
[Parameter]
public string Headername { get; set; }
protected List<TaskModel> taskList = new List<TaskModel>();
protected TaskModel task = new TaskModel();
protected override void OnInitialized()
{
if (Headername == "")
{
Headername = "Todo";
}
}
public int PercentageCompleted {
get {
return taskList.Count > 0 ? (taskList.Count(x => x.IsComplete) * 100 / taskList.Count) : 0;
}
}
private void AddTask()
{
taskList.Add(task);
task = new TaskModel();
}
}
below is a example of ToDos pages
reference : https://www.youtube.com/watch?v=T6lUWO-_NfM&ab_channel=CodingSimplified