اتصال یک کنترل سفارشی به یک فیلد
هدف
ویرایشگر بومی فیلد یک فرم Model-Driven را با یک کنترل سفارشی ثبتشده جایگزین کنید تا آن فیلد مقدار خود را از راه همان کنترل نمایش دهد و ویرایش کند.
پیشنیازها
- به عنوان سازندهای وارد شدهاید که اجازهٔ ویرایش راهحل فرم را دارد.
- فیلدی که میخواهید کنترل روی آن به کار برود از قبل روی موجودیت وجود دارد و روی فرم قرار گرفته است.
- کنترل سفارشی در محیطی که ویرایش میکنید ثبت و نصب شده است (به ثبت یک کنترل سفارشی نگاه کنید) و فهرست «جایگزین برای» آن، نوع کنترل این فیلد را در بر میگیرد.
گامها
- راهحل را باز کنید، جدولها را برگزینید، جدول را باز کنید و فرمها را برگزینید. فرم را در طراح فرم باز کنید.
- فیلد را از فیلدهای در دسترس روی یک بخش بکشید، یا اگر از پیش روی فرم است آن را برگزینید.
- در ویژگیها، کنترل سفارشی را باز کنید. این فهرست کنترلهای سفارشیِ نصبشده در این
محیط را نشان میدهد که میتوانند جای نوع دادهٔ این فیلد را بگیرند (کنترلی که نوع همگانی
Customرا اعلام کند برای هر فیلدی پیشنهاد میشود). هیچکدام ویرایشگر خودِ فیلد را نگه میدارد. تنظیم کنترل در بالای آن میان ویرایشگرهای درونساخت انتخاب میکند؛ کنترل سفارشی جای هر کدام را که آنجا انتخاب شده باشد میگیرد. - کنترل را برگزینید، برای نمونه Badge field.
- ذخیره را برگزینید.
این فهرست تنها وقتی دیده میشود که دستکم یک کنترل نصبشده بتواند جای فیلد را بگیرد؛ پس فیلدی که تنظیم کنترل سفارشی ندارد، هنوز چیزی برای پیشنهاد ندارد.
پشت صحنه چه اتفاقی میافتد
فرم، نام منطقی کنترل را در برابر آن فیلد ثبت میکند. وقتی کاربری فرم را در پخشکنندهٔ برنامههای Model-Driven باز میکند، پخشکننده کنترل آن فیلد را به کنترل نصبشده در محیط تحلیل میکند و آن را به جای ویرایشگر بومی سوار میکند، به این صورت که آن را به عنوان یک ریموت Module Federation از مبدأیی در فهرست مجاز بارگذاری میکند. کنترل سفارشی مقدار جاری فیلد را دریافت میکند و تغییرها را از راه همان فرم بازمیگرداند — بنابراین مقداری که کنترل مینویسد دقیقاً مانند مقداری که در فیلد بومی تایپ شده باشد ذخیره میشود. اگر کنترل ارجاع دادهشده در محیط نصب نباشد، فیلد به جای خراب کردن فرم به ویرایشگر بومی خود بازمیگردد.
عیبیابی
- کنترل در انتخابگر ظاهر نمیشود. — ممکن است کنترل در این محیط نصب نشده باشد، یا فهرست «جایگزین برای» آن نوع کنترل این فیلد را در بر نگیرد. کنترل را ثبت یا پیکربندی دوباره کنید، سپس فرم را دوباره باز کنید.
- فیلد پیام «This control's code is served from a blocked origin» را نشان میدهد. — مبدأ remoteEntry کنترل در فهرست مجاز محیط نیست. از یک مدیر بخواهید آن مبدأ را به فهرست مجاز محیط اضافه کند.
- فیلد پس از وارد کردن، به جای کنترل، ویرایشگر بومی خود را نشان میدهد. — کنترل در راهحل واردشده گنجانده نشده بود یا هنوز در محیط مقصد نصب نشده است. راهحلی را که کنترل را در بر دارد وارد کنید، سپس فرم را دوباره باز کنید.
- دکمهٔ خود کنترل با هر کلیک درون آن اجرا میشود (صفحهٔ امضا به محض رها کردن ماوس پاک میشود). — برطرف شد. فرم هر فیلد را درون یک برچسب قرار میداد و کلیک در هر جای برچسب به نخستین دکمهٔ درون آن فرستاده میشود. فیلدی که کنترل سفارشی دارد دیگر اینگونه قرار داده نمیشود.
سناریوهای مرتبط
- ثبت یک کنترل سفارشی.
- افزودن یک فیلد به یک فرم.
- ساخت یک فرم.