فرض کنید کدی مانند زیر را در یک کامپوننت داریم و انتظار این است که با کلیک بر روی Section2، به بخش مورد نظر اسکرول شویم: @page "/test"
<nav>
<!-- یک روش -->
<a href="#section2">Section2</a>
<!-- روش دیگر -->
<NavLink href="#section2">Section2</NavLink>
</nav>
@* ... *@
<h2 id="section2">It's Section2.</h2>
@* ... *@
اما ...
در برنامههای Blazor Server، تنها از یک نخ رابط کاربری واحد ( single UI thread ) استفاده نمیشود؛ بلکه هر نخی که در دسترس باشد، میتواند در موقع رندر، استفاده شود. علاوه بر این اگر از عملیات نامتقارن استفاده شود، زمانیکه به کلمهی کلیدی await میرسیم، آنگاه نخ اختصاص داده شدهی برای ادامه پردازش متد، ممکن است لزوما همان چیزی نباشد که آن را شروع کرده است. برای نشان دادن این موضوع مثالی را در پیش میگیریم.
کامپوننتی را با نام Sync ...
اینطور که در این مطلب عنوان شده، ماوسهای قدیمی در اثر مشکلات سخت افزاری، میتوانند بهازای هر کلیک کاربر، دو سیگنال کلیک، ظرف مدت کوتاهی (برای مثال 5 میلی ثانیه) تولید کنند. برنامههای مبتنی بر Blazor، توسط متدهای نامتقارن میتوانند هردوی این سیگنالها را دریافت کرده و بنابراین متد مربوطه در کسری از ثانیه دوبار اجرا خواهد شد. برای رهایی از این مشکل میتوان از کدی شبیه زیر بهره جست: <button disabled="@_busy" Value="do-stuff" /& ...
در Asp.net core توسط IHttpContextAccessor میتوان بهراحتی به HttpContext در هرجای برنامه دسترسی داشت و اطلاعات مورد نیاز را از قبیل نام کاربری، کوکیها، توکنها و ... به دست آورد. اما در Blazor Server برای استفاده از این قبیل اطلاعات توصیه شدهاست که اکیدا از IHttpContextAccessor در هرجایی از برنامه استفاده نشود؛ زیرا هیچ تضمینی وجود ندارد که در حالتهای مختلف، مقدار HttpContext معتبر باشد. برای کسب اطلاعات بیشتر در این باب میتوانید ب ...
مقدمه
همانطور که میدانید، Blazor دارای یک سیستم لاگ گیری توکار است که میتوان از آن توسط تزریق ILogger در کامپوننتها بهره برد. این سیستم لاگ گیری در زمان توسعهی نرم افزار، در قالب یک کنسول، لاگها را به توسعه دهنده نشان میدهد. اما پس از تولید و پابلیش اپلیکیشن، دیگر این کنسول وجود ندارد. برای ذخیرهی لاگها در یک فایل متنی بر روی سرور هاست، میتوان از Serilog بهره برد که روش ...
در قسمت اول دیدیم که توسط Error boundary میتوان استثناءها را در Blazor مدیریت کرد؛ اما اگر بخواهیم قدری سفارشیتر عمل کرده و علاوه بر نمایش پیغام خطای مناسب به صورت جاوا اسکریپتی ، استثنای رخ داده را لاگ کنیم چطور؟ خبر خوب اینکه این مهم نیز به راحتی امکان پذیر است؛ با استفاده از مفهوم CascadingValue ها. یک کامپوننت Error.razor به شکل زیر ایجاد میکنیم: @using Microsoft.Extensions.Logging
@inject ILogger<Error> Logger
...
همانطور که میدانید Blazor Server یک فریم ورک stateful است. هنگامیکه کاربران در حال تعامل با برنامه هستند، یک ارتباط پیوسته را با سرور حفظ میکنند که به آن، به اصطلاح مدار میگویند. این مدارها، کامپوننتهای فعال را به انضمام حالتهای آنها که شامل موارد زیر است نگهداری میکند: 1- جدیدترین خروجی رندر شدهی کامپوننت. 2- مجموعه Event Handlingهای جاری که میتوانند توسط کاربر صدا زده شوند. اگر کاربری یک برنامه را در چندین تب مرورگر باز کند، ...
به صورت پیش فرض یک EditForm تنها یک دکمهی submit دارد و معمولا برای اعتبارسنجی فرم، قبل از ارسال اطلاعات به شکل زیر از آن استفاده میشود: <EditForm Model="@selectedCar" OnValidSubmit="@SaveObject">
<DataAnnotationsValidator />
<ValidationSummary />
....My <InputText>'s for all values I have in my object
<button type="submit" value="Save">Save</button>
</EditFor ...
در بار اول اجرای برنامههای Blazor WASM، کار دریافت و کش شدن اسمبلیهای NET Runtime. و برنامه انجام میشوند:
در این بین ... اتفاقی رخ نمیدهد و کاربر از پیشرفت عملیات آگاه نمیشود. در این مطلب قصد داریم این وضعیت را بهبود دهیم. افزودن یک progress-bar به صفحهی آغازین برنامههای Blazor WASM
Blazor امکان دسترسی به چرخهی حیات ابتدایی آنرا نیز میسر کردهاست. برای اینکار ابتدا باید به آن گفت که دریافت خود ...
در این مطلب قصد داریم کتابخانهای با قابلیت استفادهی مجدد را جهت بکارگیری « PersianDatePicker یک DatePicker شمسی به زبان JavaScript که از تاریخ سرور استفاده میکند » ارائه دهیم. نکات ارائه شدهی در آنرا میتوان جهت تبدیل و استفادهی از تمام DatePickerهای مشابه نیز بکاربرد.
نیازهای یک ورودی تاریخ سازگار با EditForm
- باید قابلیت استفادهی مجدد را داشته باشد. یعنی باید به صورت یک کامپوننت مجز ...