Blazor 5x - قسمت هفتم - مبانی Blazor - بخش 4 - انتقال اطلاعات از کامپوننتهای فرزند به کامپوننت والد
نویسنده: وحید نصیری
تاریخ: ۱۳۹۹/۱۲/۱۳ ۱۱:۴۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
@page "/demoHotel"
<div class="col-12">
<h4 class="text-info">Hotel Rooms</h4>
<span>Rooms Selected - @SelectedRooms</span>
</div>
@foreach (var room in Rooms)
{
<IndividualRoom Room="room"></IndividualRoom>
}
@code{
int SelectedRooms;
void RoomSelectionCounterChanged(bool isRoomSelected)
{
if (isRoomSelected)
{
SelectedRooms++;
}
else
{
SelectedRooms--;
}
}
// ...
} <input type="checkbox" @onchange="RoomCheckBoxSelectionChanged" />
@code
{
//...
[Parameter]
public EventCallback<bool> OnRoomCheckBoxSelection { get; set; }
async Task RoomCheckBoxSelectionChanged(ChangeEventArgs e)
{
await OnRoomCheckBoxSelection.InvokeAsync((bool)e.Value);
}
}
@foreach (var room in Rooms)
{
<IndividualRoom OnRoomCheckBoxSelection="RoomSelectionCounterChanged" Room="room"></IndividualRoom>
} <div class="bg-light border p-2 col-5 offset-1 mt-2"
@onclick="args => AmenitySelectionChanged(args, Amenity.Name)">
<h4 class="text-secondary">Amenity - @Amenity.Id</h4>
@Amenity.Name<br />
@Amenity.Description<br />
</div>
@code
{
[Parameter]
public BlazorAmenity Amenity { get; set; }
[Parameter]
public EventCallback<string> OnAmenitySelection { get; set; }
protected async Task AmenitySelectionChanged(MouseEventArgs e, string name)
{
await OnAmenitySelection.InvokeAsync(name);
}
}
@onclick="args => AmenitySelectionChanged(args, Amenity.Name)"
@page "/demoHotel"
@foreach (var amenity in AmenitiesList)
{
<IndividualAmenity OnAmenitySelection="AmenitySelectionChanged" Amenity="amenity"></IndividualAmenity>
}
<div class="col-12">
<p class="text-secondary"> Selected Amenity : @SelectedAmenity </p>
</div>
@code{
string SelectedAmenity = "";
void AmenitySelectionChanged(string amenity)
{
SelectedAmenity = amenity;
}
}
<div class="bg-light border p-2 col-5 offset-1 mt-2"
@onclick="@(() => AmenitySelectionChanged(Amenity.Name))">
<h4 class="text-secondary">Amenity - @Amenity.Id</h4>
@Amenity.Name<br />
@Amenity.Description<br />
</div>
@code
{
[Parameter]
public BlazorAmenity Amenity { get; set; }
[Parameter]
public EventCallback<string> OnAmenitySelection { get; set; }
protected async Task AmenitySelectionChanged(string name)
{
await OnAmenitySelection.InvokeAsync(name);
}
} @for( int c = 0; c < 10; c++ )
{
<li>
<a href="#" @onclick="@(_=> OnLinkClicked(c))">@c</a>
</li>
} @for( int c = 0; c < 10; c++ )
{
var current = c;
<li>
<a href="#" @onclick="@(_=> OnLinkClicked(current))">@current</a>
</li>
} @foreach(var c in Enumerable.Range(0,10))
{
<li>
<a href="#" @onclick="@(_=> OnLinkClicked(c))">@c</a>
</li>
}