Blazor 5x - قسمت دوازدهم - مبانی Blazor - بخش 9 - یک تمرین
نویسنده: وحید نصیری
تاریخ: ۱۳۹۹/۱۲/۱۸ ۱۱:۲۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
@if (ShowModal)
{
<div class="modal-backdrop show"></div>
<div class="modal fade show" id="exampleModal" tabindex="-1"
role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true" style="display: block;">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">
@Title
</h5>
<button @onclick="OnCancelClicked" type="button" class="close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
@ChildContent
</div>
<div class="modal-footer">
<button @onclick="OnCancelClicked" type="button" class="btn btn-secondary">@CancelButtonLabel</button>
<button @onclick="OnConfirmClicked" type="button" class="btn btn-primary">@OkButtonLabel</button>
</div>
</div>
</div>
</div>
}
@code {
private bool ShowModal;
[Parameter] public string Title { get; set; } = "Confirm";
[Parameter] public string CancelButtonLabel { get; set; } = "Cancel";
[Parameter] public string OkButtonLabel { get; set; } = "Ok";
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public EventCallback OnConfirm { get; set; }
[Parameter] public EventCallback OnCancel { get; set; }
public void Show() => ShowModal = true;
public void Hide() => ShowModal = false;
private async Task OnConfirmClicked()
{
ShowModal = false;
await OnConfirm.InvokeAsync();
}
private async Task OnCancelClicked()
{
ShowModal = false;
await OnCancel.InvokeAsync();
}
} [Parameter] public RenderFragment ChildContent { get; set; } @if (IsAdmin)
{
<input type="button" class="btn btn-danger" value="Delete" @onclick="OnDelete" />
<input type="button" class="btn btn-success" value="Edit" />
}
@code
{
[Parameter] public bool IsAdmin { get; set; }
[Parameter] public EventCallback OnDelete { get; set; }
} <EditDeleteButton IsAdmin="true" OnDelete="OnDeleteClicked"></EditDeleteButton>
<Confirmation @ref="Confirmation1"
OnCancel="OnCancelClicked"
OnConfirm="@(() => OnDeleteSelectedRoom.InvokeAsync(Room))">
<div>
Do you want to delete `@Room.Name`?
</div>
</Confirmation> @code
{
Confirmation Confirmation1;
[Parameter]
public BlazorRoom Room { get; set; }
[Parameter]
public EventCallback<BlazorRoom> OnDeleteSelectedRoom { get; set; }
void OnDeleteClicked()
{
Confirmation1.Show();
}
void OnCancelClicked()
{
// Confirmation1.Hide();
}
// ...
} @foreach (var room in Rooms)
{
<IndividualRoom
OnRoomCheckBoxSelection="RoomSelectionCounterChanged"
Room="room"
OnDeleteSelectedRoom="@(selectedRoom => Rooms.Remove(selectedRoom))">
</IndividualRoom>
} private async Task OnConfirmClicked()
{
ShowModal = false;
await OnConfirm.InvokeAsync();
}
private async Task OnCancelClicked()
{
ShowModal = false;
await OnCancel.InvokeAsync();
} private async Task OnConfirmClicked(MouseEventArgs e)
{
ShowModal = false;
await OnConfirm.InvokeAsync(e);
}
private async Task OnCancelClicked(MouseEventArgs e)
{
ShowModal = false;
await OnCancel.InvokeAsync(e);
}