From c8c0b955c0bacfc7e472e231f9df7f795594a792 Mon Sep 17 00:00:00 2001 From: Vinitha Balasubramanian Date: Thu, 9 Jan 2025 18:06:07 +0530 Subject: [PATCH 1/2] 932495: Revamp template edit topics --- blazor/datagrid/column-menu.md | 4 +- blazor/datagrid/column-reorder.md | 2 +- blazor/datagrid/foreignKey-column.md | 6 +- .../blazor-datagrid-dialog-edit-template.png | Bin 27381 -> 0 bytes .../blazor-datagrid-disable-component.png | Bin 27178 -> 0 bytes blazor/datagrid/template-editing.md | 598 ++++++++++++------ 6 files changed, 406 insertions(+), 204 deletions(-) delete mode 100644 blazor/datagrid/images/blazor-datagrid-dialog-edit-template.png delete mode 100644 blazor/datagrid/images/blazor-datagrid-disable-component.png diff --git a/blazor/datagrid/column-menu.md b/blazor/datagrid/column-menu.md index cd550a4e18..664744ef54 100644 --- a/blazor/datagrid/column-menu.md +++ b/blazor/datagrid/column-menu.md @@ -90,7 +90,7 @@ public class OrderData {% previewsample "https://blazorplayground.syncfusion.com/embed/hXLzMLWLKTPWHQcg?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} > * You can disable column menu for a particular column by defining the column's [ShowColumnMenu](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_ShowColumnMenu) property as false. -> * You can customize the default menu items by defining the [ColumnMenuItems](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ContextMenuItems) with the required items. +> * You can customize the default menu items by defining the [ColumnMenuItems](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ColumnMenuItems) with the required items. ## Prevent column menu for particular column @@ -355,7 +355,7 @@ public class OrderData The nested column menu feature provides an extended menu option in the grid column headers, allows you to access additional actions and options related to the columns. -To enable the nested column menu feature, you need to define the [ColumnMenuItems](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ContextMenuItems) property in your component. The `ColumnMenuItems` property is an array that contains the items for the column menu. Each item can be a string representing a built-in menu item or an object defining a custom menu item. +To enable the nested column menu feature, you need to define the [ColumnMenuItems](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ColumnMenuItems) property in your component. The `ColumnMenuItems` property is an array that contains the items for the column menu. Each item can be a string representing a built-in menu item or an object defining a custom menu item. Here is an example of how to configure the `ColumnMenuItems` property to include a nested menu: diff --git a/blazor/datagrid/column-reorder.md b/blazor/datagrid/column-reorder.md index 1b05f90a6e..a27edf997a 100644 --- a/blazor/datagrid/column-reorder.md +++ b/blazor/datagrid/column-reorder.md @@ -328,7 +328,7 @@ public class OrderDetails ### Reorder column based on field names -The Syncfusion® Blazor DataGrid allows you to programmatically reorder columns using the [ReorderColumnAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ReorderColumnAsync_System_String_System_String_) and [ReorderColumnsAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ReorderColumnAsync_System_String_System_String_) methods. These methods provide flexibility for dynamically rearranging columns based on their field names. +The Syncfusion® Blazor DataGrid allows you to programmatically reorder columns using the [ReorderColumnAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ReorderColumnAsync_System_String_System_String_) and [ReorderColumnsAsync](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.SfGrid-1.html#Syncfusion_Blazor_Grids_SfGrid_1_ReorderColumnsAsync_System_Collections_Generic_List_System_String__System_String_) methods. These methods provide flexibility for dynamically rearranging columns based on their field names. 1. `ReorderColumnAsync`: This method is used to reorder a single column by specifying its current field name and the target column's field name. It takes the following arguments: * **FromFieldName**: The field name of the column to be moved. diff --git a/blazor/datagrid/foreignKey-column.md b/blazor/datagrid/foreignKey-column.md index f8d1096e05..35854beebd 100644 --- a/blazor/datagrid/foreignKey-column.md +++ b/blazor/datagrid/foreignKey-column.md @@ -11,11 +11,11 @@ documentation: ug The Foreign key column in the Syncfusion® Grid component allows you to display related data from a foreign key data source in a column within the grid. This feature is particularly useful when you have a column in the grid that represents a foreign key relationship with another data source. -Foreign key column can be enabled by using [ForeignDataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html), [ForeignKeyField](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_ForeignKeyField) and [ForeignKeyValue](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_ForeignKeyValue) properties of **GridForeignColumn** directive. +Foreign key column can be enabled by using `ForeignDataSource`, [ForeignKeyField](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_ForeignKeyField) and [ForeignKeyValue](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_ForeignKeyValue) properties of **GridForeignColumn** directive. Define the foreign key column in the grid using the following properties: -* [ForeignDataSource](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html) - Specifies the foreign data source that contains the related data. +* `ForeignDataSource` - Specifies the foreign data source that contains the related data. * [ForeignKeyField](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_ForeignKeyField) - Maps the column name in the grid to the field in the foreign data source that represents the foreign key relationship. * [ForeignKeyValue](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridColumn.html#Syncfusion_Blazor_Grids_GridColumn_ForeignKeyValue) -Specifies the field from the foreign data source that should be displayed in the grid as the related data. @@ -327,7 +327,7 @@ The Syncfusion® Grid allows you to customiz > For all filter types other than FilterBar, filtering parameters will be sent in the form of `PredicateModel`. Here, T represents the type of `ForeignKeyValue` property when using the foreignkey column. -In this example, a DropDownList component is rendered as the filter UI for the **“EmployeeID”** foreign key column. The **DataSource** property of the `SfDropDownList` component is set to the employees data, and the Fields property is configured to display the FirstName field as the text and EmployeeID field as the value. The `value` property is set to the current filter value of the column. +In this example, a DropDownList component is rendered as the filter UI for the **“EmployeeID”** foreign key column. The **DataSource** property of the `SfDropDownList` component is set to the employees data, and the Fields property is configured to display the **FirstName** field as the text and **EmployeeID** field as the value. The `value` property is set to the current filter value of the column. {% tabs %} {% highlight razor tabtitle="Index.razor" %} diff --git a/blazor/datagrid/images/blazor-datagrid-dialog-edit-template.png b/blazor/datagrid/images/blazor-datagrid-dialog-edit-template.png deleted file mode 100644 index f6df7ec32077d930dc0011126c1f733b31840cab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27381 zcmd?R2UJtv+9w?4FDTVQlNKu$zzEW$ML4BhBX;D#7s)~TpLIgq& zN{fngLy%AeL~4LgLqfuwSnmD5^Ub{Xn{VCu-Zg7j%jF`R?7h!Ed++D@mFL{QVyw@{ zEyfK3f%q<6Jbw)Y;(&ud+vRq00-v;!--!VKZS%dRuLCOSkeCL3`O8_`NE-ygqIov$ zcL2Zd^1f){3j*;svHxu&c)h*}0=dOqID z8{guNYPIzli6UQY$451lSqVzR4talL{pPi!_);@wp>1$TgsoHWdnsUf2%~>r0%yi$ z_U^%k-iLUYNxoxWlpbM=-~fTbTXKBgcC@pIkTD*tI{VM@kos(E@FG#hBe)j003<7w zne6A;ch+*!4Y+wG>qjL1-VH$nn2SVUF7o&X*PO)Fp3mym1H;i; zaV*PpzZneLZ_qmB8(V~2ogcBfNw1(qz4)8eVX-|eVV86MPJUnOc(e=*R8G!q}AhpX*9Ae^8Jv@?ait%g6sQ#NNGd z^T+?VH`n_R*~??VlpgSkg*2BpiwGb6Ggbe#?)aGT4Yc@A{Tdo|YNuyMOu5{cnzIKa zt&;wBE5s{9u+;U+%eFo(Ld0#sUS3{;*WWa_j}>Z41y8-0S(uL!u@yD8;Dv5{G#Mm7 zSw8D&q`KC6IuYX!-=dRZfP?G#`JZnByYmsGcEQk(ZRvQA{8#xk(toPj6u=3*5O;L@TLT%#likD%O-fbOygxf#LI#+s1;Q31MjzkW1TMV|-u%W@7`tmra>ZI`o-P@@_SL!2mHvjzePwH7W@PS> z!KpW4sZt?x*zS>b0TfMl{jLD=`9Km*C2@;}-g@0ACk#hJSydqn^2oer)oAq9P0fw( z$;353!-MZYc4EO-FGCJYtNKo626PBsRqLqVVlH6%>eq)uVoWD_s8PTQb~{cbmI&Lb z9iPS7PnBe3#b)+)R(|TtzFE_&*PELbdl2w*Qhz!MpxHU!_0NKK!nVN%>+LEd8m8rvoMSw| zz9V)8wWM;otEryQa#+?qR)4h9+=B(wZU!X zFva_j7of6>s=Uo4t(vsgv}=*mKC@KD7C!_}bMVuXU9HBd&sQ}`Lc{7TOLl=bKIji7 zstl{v3F&jBxnt^amZuURnz$T&^bHuzVQR!|v~Pt9dgnII)!)FHZ7@za!2^*ith5gh zvb{&s0k*%=9Vu!q$3q=mu48-y4sDSsQt&s6J=-i$4atoLd1D6tdcCy0YNIWjjG99) zE4SgPiCz++($k$=o1KM~IlH2wUY=jpVeU4Koce2%(XhoJ%A{ZO8V8~WUd7rW`}CLt zH8**Ax;MX&Qa@vcDZu3ic1`l8z3fyuaba%x#y~VKfMgSpsMVRv&{`k#C1j;*8ITm4 zfp1kpW~c)rjLz3Gt`+886js7 z=%CSdkB6g2e{b)}J@B|AEz$gj^fw%)9%n}$jn9^j9yN%E@U5X1*26Gs&!jU2N7nJ{ zX7G1**_W;*xGt7-a!#Mo(Rw2Tx6~(hkHmz&j~V;XXXWKLnT^6TfM;Z7bSAAiwWQ|+ z=gP*h7nD$74SPz!gXieA-9m>$Jk_S%L$IA!rWbCf$iTI*GTYg7?)glUGiXO z=3me?EZPi?-<`GFk71fkzpgZrof-$>o9fKcRIjT*_nB=X>Al%f#`{mp;RStzb61|j zS4$|zIfV|6`tB3kJry~JV!ffzdX{-OKIqRL?+|qDrF8`0laX!DnO2uVO0cvZX5Dh; z!ktcy<RC+C7vn_sp&uil<|ZwqBX@Sl)Qu^~;a5yYI8`Y; z($`!xZIpUHLZckcN9?f5qtNI*sdz;t{3Z%5SaUBQVt6Uk)}+^u*oI;cZZjT&uc8-O z#Ig`t)cYpaw=}l_!{d4{P}&(f@0$aKDAfH0945*V3!S>d{-Rg84(rA6U+`Dw&Fc@f z^!R$)D8=FxB0ANu1(pP_ItV=NOkOz`MHiBh#;hn-9R6X>bpAE zPd*nacpGyVn!d-#q@AOr#VK@A)uq8d=#_OS&C^OMhSXx?n0<_-1?>W)2Yq@*8d^%%KJz6j3R8D8<=I zQ~uJJ%oVOfEivGuJufdo{nY)lElEE&kxmG2a29Y|a-aQp+Z7294-Z8;I@~vq{6Y$YgSI)(teCIl9;eqnQ#9|c!D0yL{kHXn zFU*MxJ3;S?Ug5nRAHwCm*ju8>hoNx|N73p$71Cg~Oq2=j4y~^AcgJdV+7p#&M z4cV&CO_8axC-5tXAi8YY7LjVH53_X`x%TvsFuaC4M@9pCd|wTB?*-(p&>NR#jdMPV zcuu7YuI5VlX9JIJ-U@wiH8D{v;kduYxtE=`t{eU2oz6~uGVtKdV4iUf0gclc+d*9k z=7Iaq{v`^me_UeLQ)%kNe%m2#;y0taFC!j%&OUeYx>O!vE_%Z#W%?QuZWGL3b24Z0 zh1cCLj_MwPAFm@PR-(k!x?LABURa)nvsYkmR#5sacsE;@fzGhCveDvg^vs3lP#$- z>-&cC20+x-Z<`IMNn~(_6Wxd%$s-AmSB6?i6?%v+l zMC-x%g_G{$Wq{bRFMasaEttQcEf(UpJMM6(Rn``G&n)x|YhjDEFtZFDO}%kEY~_Yt zOC;xvu(R5l+FI9`bdlK(*Z472Dy;(uJY5otIC&*+#{|dr}3*# zBj>HM^LyiW)3;hZ)IjIV7 z)~DCbW|QjY{fJM%J37h>_s4B#I)Ad%pT+-B!n_$~tr0O{72IHO<~cv&l@UAI011!d zmVL4BjWHfbo`zk-=^@>AaI}3Nt;ex%*8nb`(fj137m7h9Zstu@PxG8xS)F0|J9HwX zs7L1(V5nokyurpbpM-`RSjLK|M@HkaLU6ju($=XvW=lA-r$HE&3v@2QqOq+M)Qg?` zk?u7w`|dXwaN=j9fv%&$qZc8^+xOZ=qjr2oZS%}xFZw^o;l>^t3aPS8>if)-?S|Rf zKR$_!jr|uRj=uw()I<1{eK5k%kWFP-**LDU(gs8FwX(9B@5eee>1qKONp|l)P-$kF z-+U5)ZeiV}t^+`SB{j7!7}#SaC&@iA1=s_n87D;Ym4 z%41}kSDjkJjd{zQVgd?{~YiY$4^kiP)PLHjY6|)rDrQeD{OT;?UjsyO$)4TJg>WGf8vuF-m4e zoR`JlYn!QHR7Auhj`(adApc3WmSM$>uD#|zNZmw9bFSu6?N}K{cK1F>J6(MRB z;a$XpV=7^`H+n&24MipRx4u_cZJQZ*m^Bo}w3X!YS@197MR9PH zqr4Y#Up%C^42lqbCiJPWInL)UP*8 z?F&eHU+#)gYxa+{lrU5O@|e&Q@Po$f{~_Y?Px`^=8CB`Z__N>#yorhE0#^oBI1w{o zjzDJC@U=!LU=s%dOMH-eS*Dcg{4trQ!l6D;b55E27}+n7sW}*a2AkY};b#5J^Sy3u z*VV7jJTG1NOcjzs^1CEa{bs(L2w3|5@gWJ0s#gzLoAaKZa|vO?-^Cm18e5yo^Lgo> zxART1ONQ3K0pe&$yWyz-)y?{fky*3zgm?hW^kts)y`|~|X4bnvNi6=Zqels(bK;O7 z>TYrHj$Q|@UCaW0ThOHX(qpoqHmUz7E7>}^t1~6@o>2&o7>6lNWI`8!*wMDGxz_7ix;sY`rc z6l2w=p6ipXuOoLEjdP2BZ?#{0llNE*UO61>UeOs%-~)PWdD{$=yX`Rk%+4~0)}uCD zR^yxTS=V7U_YW>2a_E(=(2dzE4wG# zkvahx$H;hG31(0#VarW^EwWT4SE+Z0cCP0O;vh8a3%^ZQoE$2y}kq z$n3<~!|;A1IAdB>Bot2XG(q)^f05T+UQu=Ir|PuDzy_7%>fl@Edrx_xQ2w$H(|&Aa zwv^1w;_?`?@7zoskT&!_@4A-{7F!MYbdCzcSADLOwnqXho)$rabt|yGec*ItebZ~Z*u;4em*i<8 zzSs}y<_s96?B2q1$fij%(s!=&jdH~@hsg^#PllJpmpdrIJ+C%lEk}aOEexMMq`s`*2~7iAx4124 zd}occdk1@HmZgb^*S-X3&a1$49epkx4Lu&m2Q2FNQA~c&=yOxl8m7k80<~L27j23r zah@NgJn-JlReCXP&P#`(Qh<6hrtzUzJp6dQVBdDG?M5C(hz z2iag4h#qeo!R5Kvj%vvvp5=9(9fYkqTS1WXI_P#({Bso8k^~>lO2;`iXVq@e+84v@ zD-PhlpKK+4lZ%rP$vAWQ*F=Z~x`1BZy_n#Q_jG?SF5uw6ad=c9FOBzI<2KU-@7+Sf zYxgy8gzLRz9{1mI@(2!MIM6A$3y0ao{5q!psxNUzY=a~UKk8NcQ7bQ~cP(^JYwA{D zBLU;eB9<@uxZxY>5N)W8-YoTScIPc5meqk>m}xeBTHT!5^_&2Hy%8DlwBODk;;Hw! z{rtB8nk8~w=&;23sLIeZ4}s_I(iE=?qT&uc3uWNFI&JjzhXY%i3~cDfHH$r-Fd8|j zc;8C~0NHkh46YqLz#3m!-{@bioX|`5OWUk{H}i`uC_U~Az9@Xie+ ze{x^9@+Kss>o#j4!~@Q~-rx<#g?=1yZaTLoZDC>75~^W571U2z#O8J>Ga1T?nn*@= z-dD#`g68xFSz*muk2W~B&=0?WTJvi9`{0^5&*nh`aoO65T4?e^K#3YC_|Apiku8sO){@bf z0S#?NU-ko!j>qqjg7Ai%S{r1#)wv*q?t`h-WXzaEsPrRtc zc3GZg7>8pwAk8i6%@rNR$338(Y(H7I;`aF)H%t>RXtfG+E3muFdCfyS)DJu>?s@oW zet&^vq;P5SK6q@~sO)Yyh%1KXX6L41npiysx#oO=Y8KfH!(M1Sf$KHW@J=8Mu>ALt z*Ktb1j%;o5R7}}99=e_9)CqgA0`XK=vS@QspulSws(zdIr0+S}*0-Muw-SH4?`u<7b zfIoqRZs~jF^8|da+bO0um`60*-uFJnA@d;Kt(S9_=)d;qo6r+1MW6p9QDL;4EyezQ zCZ?zaod};t^$cgYI9IzAJa|v-+NqaVg1kgo(7K8ezF?vieuscOf{*h<9!s*BD1aBo z6*(sP_s0_H&8a3Hr|-wMXYLr|`Sxu$oG&5jbN`B~V-{}Q9l7zW1i8oV>t&>nyT+@T z)KV@?PeRIl%Iizx>h-9W1b_e<)Bfid6VL_n#=A|E37P;)S5^Q1X~`v|>%ceaKD)C& zTflqN*i;m>lZ?-1*!s@N#opE#OzfkCdBR&b77`u-C~QBD{?y|BIUzjqkY5nZ=WNFBn~Du$ zhwoDc$e}O>Wu6C6g!)(5pnZP89piV*B&%o>!1*`QF=S;EH+2>gZsp$toaHqpC@lw( zj>e)0LdZfrDHG7Hu0pE6?_CGpy!3RDdw+DC+8m!|1Bnl3Gte1Irtga!HEtSq(q|>z)X$_{>(K zur%(EtiDXjQO!PCSg!r*>{`Ad$S>cpmiBlV^2<2M)ib>z9Hl>?(0dt(>{RTz5EDJ zIc1rjQlD`bpS~w(9Cy5SKuC<7RN??g+RWamlc_DKHhjyDhOM}}s$R}70G`_na|xEJ zI07f&UKHLK#YN(rmSyn{dqf_^VO+a8PxAnQ#Fib>+r;2+PNxaNaYe~XlOknhy0?P1cdf7WOK6K!dS34E@J{dD zKq#s^0tl`!dA#5i?h~k*FLZmw4RT^jDr*kaY5?_1r!|&jMk$XQK$|XdUusG16>+k*2d85`w=Q_~eubc|%T{H!;{@R+X{inV#9y ztEwJcBjsQR*}~-v{(Ru-$s-wHPu*pJ#SOJY?uts^3M%P$3$ zEp3#sIAIFIBP$X@&+2<1zk3{R4$O(t5|*96Wo>FLd`)JiWMzFlCAdC|JTP#ZkR&NC zwN!gh`DsRrIr0+E>3Xx%o1JK(tE1#yj&0Adw53W2r9jMq)X}IhW^nw$T-#~s&>tsp zd{K{WR`=Q?Ek10J`75=7Ze$PP?-=)0TTHrS7W#GcRjUKO2y4BjJXfm{z-@4Q@+^QbC`j_uSP-rj%i`ab0U(>Vc{S^g24er=^ke>=N>ui0Ng zuvz5Yd%$||b8j5^+cEYphNKvHzBz)d^e2%@{h3Iq{{HoU?lL&pKm1Us(nli$KdDS2 z4Gs*vTg?fn*a*=l=`Z*7^$q>lg|g|~m+o2LU|1D8H0i=TTt85E>X$PiuZpIIA5Bc; zOhRJ@uwwd&ttOh4@~*Pc20+Mt*>pNiQld4$4fTwLfIcmVXpf%#iZF?nMKM+p0-iBG zDqg=l3?~%ueJVp)D0O))H`tiF&{6#5GHwXvb%c!dDot$UexZ!bN15wb#0oLA$g3)G zpzg!Am%*|&5*dK0h3(*`6fr~g86H{goaON z;J>ERBAQkZ)my$1N@zWQ-|p8p0xuGwsY2H6mnC+N8CNd}**;ph_>XShc&YOeE=G`Z zsH8~wz0@cmRmvN42?UASvIFb;rjlD5bj+6oiIFhBccR6WPa}5xnoqsfROqQ0b>%Q_ zcwI?x*}QU+`E??}{&39fKKR9d_*H<+@Sy+k|39oP3i&iOznRDCK}$D{jMR@icV_tk zj26?7Tt)-cu{=kr}pC0hSO%EOe+ZNDRBh0D|%G(4AhR3c}Y`#~sIk*#6Up z^UMlaq3M$TM4IZvp}n2&a%&iAwYF%)RhRLtf@C|}k#Y7+hJyHV0>(SLmwCML)>o0$ zIxoN@!2yMa>z(_3&S@fi=VGuzz^J3hI1&}2$fF9RO^6BkLT@( zrEragy4Dmsh#Dz zlyKUmk$H$$xC!nxpmnm`qY54kjN(qV!UdXWBSVDcsC-Ag!YI6?`>e&}t;`(1lD@N6 zlk@#&C4GeW((@42OHsuZ17v>YwzRw`>@7E2Q8;}+ziN|qCT<}nWoN#T_|EO$lfnY> zcc2@ft!wdLls8w)4L!CV)B|zD~ERY;4Y3MKv*V2Rwm6eA^~;|EM)0#`Q2~; zn8iHG2JGXiZ_g758K-$GTmm@%fBL$P5>h!$u$7woN1va>C3=4o9u^)gzXUXPt&1g$ z7qySn79>L)81Sl2BeK3;AY5LW;>)6AC+>_Sj~N)!Ye65j{a(=)w~@Pw#{~ufl|Jo< zK(j}>a`?)E?(8f@PuV=4Poc?m)PLLM<}ggtRM&zZZR1mam_6fe1HO;Q5}bE@6MEgn z0u{zv3)x~t;fe{l1ZS5tO=+u6xb&L!iuGy+)0OTUhyum`GOGZ~S_-aQ^|sT6cF<`V zSj_L*QYtWyEBzce%K8(%Nvt;*!a4>Rc>acEM;=)VVH{!zvSG{Z?3CR%4x{({E{rC81fUEufOPWblobM4 zjHw zie_as{zqRQX9;+yuzf_mMk}onhnrV6c||JL=vn^3HH-18(e$zv`DN-e^#I`WYxLcl zr}=d>ike~fv-4z(TCbEuOKD zeVCE_Vkk?abr>6IaSk*M@d1$qNWnQjvTyxZJ8?N4`fG0)CUE_CshaJD|&<5 zn)!M01QmA}c81)u$)XQy+k1oo_Gch<2r{)qetqiZk#If!#e0R1omVRMz(<#eRqiRY z87qWi=3iYtMLj7WS`%RS@89H?^uz%k;E&bR)D0;Y6NmAHqR{}E^XF4t zq+Ev{^2lG#$$xXGT86K6@6nol0(hPOJHx3$Dy@bwU%Q98yF9^Jlkj^|H z{?;Of07Lxm2`}hV3~l=q|8JxMcv+t#0aQN!2Q31b=fCFy(MiB|iVYc!5{a%Ht7Dr% zpE+mw0QS8x?@xEw*}iogt;fV#G9VyesG}o^JUr}QZ`+ALAgUb+NqhnuL+|W%v&jum zNB!nf+x&EXw!ewy>h*~jt(Al8Z%jhn?x_E8L~H&?lG2>T{S5U z%J6|;`OQ!ha`&1?eZTwxYv~Hgmv@>P(uU$so5s2tM$<<&Z>>kG)Vk(^i!L){g$#*KL{*l&=7aT^TDLDhttfJ82 z5#y?@0hZhQCj&TKPNPOaamDOyWoR}@}693$BpaB9L`)rKo z^bs(k$f|t=OM0D<|(kG?URGTxNghau$(WI|MFLeq1wFEnpSNr z#(S%j`M$AL9~iP|a^F5ynDEQfJ;W0fhI}Ja0cSFcgBrEDWa@)M@63II&9U+{In5>L zD)(*b1)V!GeAsf~s&i=i3)ax8DO`T*YiAfP4dT#n<{Bt*ML`{WJ@D+Gm4rSx>+fb%OuVQCcHnUPeM=NqG zI<8n>D(Dsc3}BP5`?=;wpv)p6E0%&~{zqra=dz8oj|b}#BD7LYjT!WZy%ag-z_@TS zke5egB9*a@=@%B7e6ha4y5Jka_V{C)Dx1y6wB!fS^9@_9 z8C)QJIv+T2j8{#)G{0mk!6O@b<=Mv(d(#3>4Ex^6BMo>~ARC1RTF>(vFjQmc`w_r8 z{V3SpaqlSW$v}gn&%{0}NQLnXHRhERk8D=nR&=t<(t^S7F;{;A7JT^@?gXLvih^ zy*T1f7vsfV1hEi@tqJ8!ea6$RXD6q<^cnd{mqzh<)7%G9^zTbFH666P zo;b3;X#)ghbEld(jG)+DUdeGuVZKPp%#L?QRv7C)R2sh4kMeoFwl!Ce#e@va#$s+r zCPnOZ%nq_l>;xzY+nZ9SQvW1ls@xnGua={_rm7PM6qsbzwh7t=l(=|_b7kQ~(*d3g z?-84e$Zd~1Uyc`kB;JeYYJI|MF1bR9qVMHn4oh5M+-MeTCh@vi-?^Cs6<#7-h=Dnl zEw*@D+uX^Yp4B2({&ROd8TgDiK4rsVQWMq2xo5ve)YwF0}dQ z@97av7kWKDD-E)KcyG9gkA}{yxoD0do&ky9>LOKXjWxzj&_X?|4&R4xMzD1hb|@}< zA*M^z!pT!I&%ZZ6E*e3RTu5YT_)oZt-bilsu0K57Uu=p07(Z@)4@j+~PT>n8K0KDJ z4&HH03~&NQXtOExZFjh+#Ad3Gk*Hzfn2dZ$Tq{f!A7>H=J=}HYG({v zX&;jjZR2At$d9>Ou(vs&5TDnmD%))Z-jhyNahWX!K4y91}hco(qaY%W-ZrM1X*GQ!rV1>d| zb34A4IS;Lp;Bc$S(-~T!HEZUt^0vwHbu>Ddo!Ul)Q8=WPt)LUN~xekV+IMFPwX!mg&5Zyvg^&Yc~iQ2C$}+= zz}cIoHNDa3c5Q%_w}C@Vcj6GPv&#&DHs0T8`14VGB;8*vZ}=|r)uKWMv5Z}n7$=9$k0btb^0|G>sqS=ZJHHc7sNUNw$L`M4MU9Nnb#Mw$ zQw0!s|619e_LD)c)NN>1KFlB`R=1?SxSPCHP#eoPw&{8eg?pdP$JwMk@k-l5^+Ws~ zAjy=%7@;+X7x9j5k-ZLR6DU@pYFBc-u

&k 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 diff --git a/blazor/datagrid/images/blazor-datagrid-disable-component.png b/blazor/datagrid/images/blazor-datagrid-disable-component.png deleted file mode 100644 index e9a8150001f6ea2c40170a324173a767ef933827..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27178 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 b8lgc;)`*(rfj=C Before implementing Template Editing, it is recommended to review the [Template](https://blazor.syncfusion.com/documentation/datagrid/templates) section to understand the configuration of templates in the grid. -N> Before adding an Inline template to the DataGrid, it is recommended to go through the [Template](./templates/#templates) section topic to configure the template. +## Inline template -The Inline template editing provides an option to customize the default behavior of Inline editing. Using the Inline template, you can render your editors by defining the [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html) component's [Mode](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Mode) property as **Normal** and wrapping the HTML elements inside the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Template) property of [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html). +The inline template editing feature in Syncfusion DataGrid allows customization of the default inline editing behavior by enabling individuals to define their custom editors for grid rows. This is achieved by setting the [GridEditSettings.Mode](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Mode) property to **Normal** and wrapping the desired editor elements inside the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Template) property of the [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html)GridEditSettings. This feature is particularly useful when there is a need to include additional fields not present in the column model or to render highly customized editors. -N> Custom components inside the Inline Template must be specified with two-way (**@bind-Value**) binding to reflect the changes in DataGrid. +> Custom HTML elements or components can be used as editors, and two-way data binding (**@bind-Value**) must be implemented to ensure synchronization with the grid's data. -In some cases, you would need to add new field editors in the Inline editing which are not present in the column model. In that case, the Inline template editing will help you to customize the default editing. +In some cases, you want to add new field editors in the dialog which are not present in the column model. In that situation the dialog template will help us to customize the default edit dialog. -The following sample code demonstrates DataGrid enabled with Inline template editing, +In the following sample, grid enabled with inline template editing. -```cshtml +{% tabs %} +{% highlight razor tabtitle="Index.razor" %} @using Syncfusion.Blazor.Grids @using Syncfusion.Blazor.Calendars @using Syncfusion.Blazor.DropDowns @using Syncfusion.Blazor.Inputs - - + + - - - - - + + + + + + + - @code { - public List GridData = new List -{ - new OrdersDetails() { OrderID = 10248, CustomerID = "VINET", Freight = 32.38, ShipCity = "Berlin", OrderDate = DateTime.Now.AddDays(-2), ShipName = "Vins et alcools Chevalier", ShipCountry = "Denmark", ShipAddress = "Kirchgasse 6" }, - new OrdersDetails() { OrderID = 10249, CustomerID = "TOMSP", Freight = 11.61, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-5), ShipName = "Toms Spezialitäten", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10250, CustomerID = "HANAR", Freight = 65.83, ShipCity = "Cholchester", OrderDate = DateTime.Now.AddDays(-12), ShipName = "Hanari Carnes", ShipCountry = "Germany", ShipAddress = "Carrera 52 con Ave. Bolívar #65-98 Llano Largo" }, - new OrdersDetails() { OrderID = 10251, CustomerID = "VICTE", Freight = 41.34, ShipCity = "Marseille", OrderDate = DateTime.Now.AddDays(-18), ShipName = "Victuailles en stock", ShipCountry = "Austria", ShipAddress = "Magazinweg 7" }, - new OrdersDetails() { OrderID = 10252, CustomerID = "SUPRD", Freight = 51.3, ShipCity = "Tsawassen", OrderDate = DateTime.Now.AddDays(-22), ShipName = "Suprêmes délices", ShipCountry = "Switzerland", ShipAddress = "1029 - 12th Ave. S." }, - new OrdersDetails() { OrderID = 10253, CustomerID = "HANAR", Freight = 58.17, ShipCity = "Tsawassen", OrderDate = DateTime.Now.AddDays(-26), ShipName = "Hanari Carnes", ShipCountry = "Switzerland", ShipAddress = "1029 - 12th Ave. S." }, - new OrdersDetails() { OrderID = 10254, CustomerID = "CHOPS", Freight = 22.98, ShipCity = "Berlin", OrderDate = DateTime.Now.AddDays(-34), ShipName = "Chop-suey Chinese", ShipCountry = "Denmark", ShipAddress = "Kirchgasse 6" }, - new OrdersDetails() { OrderID = 10255, CustomerID = "RICSU", Freight = 148.33, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-39), ShipName = "Richter Supermarket", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10256, CustomerID = "WELLI", Freight = 13.97, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-43), ShipName = "Wellington Importadora", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10257, CustomerID = "HILAA", Freight = 81.91, ShipCity = "Cholchester", OrderDate = DateTime.Now.AddDays(-48), ShipName = "HILARION-Abastos", ShipCountry = "Germany", ShipAddress = "Carrera 52 con Ave. Bolívar #65-98 Llano Largo" } - }; - public class OrdersDetails + public List OrderData { get; set; } + protected override void OnInitialized() + { + OrderData = OrderDetails.GetAllRecords(); + } + public class City { - public int? OrderID { get; set; } - public string CustomerID { get; set; } - public double? Freight { get; set; } public string ShipCity { get; set; } - public DateTime? OrderDate { get; set; } - public string ShipName { get; set; } + } + List CityName = new List + { + new City() { ShipCity= "Reims" }, + new City() { ShipCity= "Münster" }, + new City() { ShipCity = "Rio de Janeiro" }, + new City() { ShipCity = "Lyon" }, + new City() { ShipCity = "Charleroi" }, + new City() { ShipCity = "Genève" }, + new City() { ShipCity = "Resende" }, + new City() { ShipCity = "San Cristóbal" }, + new City() { ShipCity = "Graz" }, + new City() { ShipCity = "México D.F." }, + new City() { ShipCity = "Köln" }, + new City() { ShipCity = "Albuquerque" }, + }; + public class Country + { public string ShipCountry { get; set; } - public string ShipAddress { get; set; } } + List CountryName = new List + { + new Country() { ShipCountry= "France"}, + new Country() { ShipCountry= "Brazil"}, + new Country() { ShipCountry= "Germany"}, + new Country() { ShipCountry= "Belgium"}, + new Country() { ShipCountry= "Austria"}, + new Country() { ShipCountry= "Switzerland"}, + new Country() { ShipCountry= "Venezuela"}, + new Country() { ShipCountry= "Mexico"}, + new Country() { ShipCountry= "USA"}, + }; } -``` +{% endhighlight %} +{% highlight c# tabtitle="OrderDetails.cs" %} +public class OrderDetails +{ + public static List Order = new List(); + public OrderDetails(int OrderID, string CustomerId, double Freight, string ShipCountry, string ShipCity, string ShipAddress, DateTime OrderDate) + { + this.OrderID = OrderID; + this.CustomerID = CustomerId; + this.Freight = Freight; + this.ShipCountry = ShipCountry; + this.ShipCity = ShipCity; + this.ShipAddress = ShipAddress; + this.OrderDate = OrderDate; + } + public static List GetAllRecords() + { + if (Order.Count == 0) + { + Order.Add(new OrderDetails(10248, "VINET", 32.38, "France", "Reims", "59 rue de l Abbaye", new DateTime(1996, 7, 4))); + Order.Add(new OrderDetails(10249, "TOMSP", 11.61, "Germany", "Münster", "Luisenstr. 48", new DateTime(1996, 7, 5))); + Order.Add(new OrderDetails(10250, "HANAR", 65.83, "Brazil", "Rio de Janeiro", "Rua do Paço, 67", new DateTime(1996, 7, 8))); + Order.Add(new OrderDetails(10251, "VICTE", 41.34, "France", "Lyon", "2, rue du Commerce", new DateTime(1996, 7, 8))); + Order.Add(new OrderDetails(10252, "SUPRD", 51.3, "Belgium", "Charleroi", "Boulevard Tirou, 255", new DateTime(1996, 7, 9))); + Order.Add(new OrderDetails(10253, "HANAR", 58.17, "Brazil", "Rio de Janeiro", "Rua do Paço, 67", new DateTime(1996, 7, 10))); + Order.Add(new OrderDetails(10254, "CHOPS", 22.98, "Switzerland", "Bern", "Hauptstr. 31", new DateTime(1996, 7, 11))); + Order.Add(new OrderDetails(10255, "RICSU", 148.33, "Switzerland", "Genève", "Starenweg 5", new DateTime(1996, 7, 12))); + Order.Add(new OrderDetails(10256, "WELLI", 13.97, "Brazil", "Resende", "Rua do Mercado, 12", new DateTime(1996, 7, 15))); + Order.Add(new OrderDetails(10257, "HILAA", 81.91, "Venezuela", "San Cristóbal", "Carrera 22 con Ave. Carlos Soublette #8-35", new DateTime(1996, 7, 16))); + Order.Add(new OrderDetails(10258, "ERNSH", 140.51, "Austria", "Graz", "Kirchgasse 6", new DateTime(1996, 7, 17))); + Order.Add(new OrderDetails(10259, "CENTC", 3.25, "Mexico", "México D.F.", "Sierras de Granada 9993", new DateTime(1996, 7, 18))); + Order.Add(new OrderDetails(10260, "OTTIK", 55.09, "Germany", "Köln", "Mehrheimerstr. 369", new DateTime(1996, 7, 19))); + Order.Add(new OrderDetails(10261, "QUEDE", 3.05, "Brazil", "Rio de Janeiro", "Rua da Panificadora, 12", new DateTime(1996, 7, 19))); + Order.Add(new OrderDetails(10262, "RATTC", 48.29, "USA", "Albuquerque", "2817 Milton Dr.", new DateTime(1996, 7, 22))); + } + return Order; + } + public int OrderID { get; set; } + public string CustomerID { get; set; } + public double Freight { get; set; } + public string ShipCountry { get; set; } + public string ShipCity { get; set; } + public string ShipAddress { get; set; } + public DateTime OrderDate { get; set; } +} +{% endhighlight %} +{% endtabs %} -N> In the above sample code, the textbox rendered for **OrderID** column inside the Inline editing template is disabled using its `Enabled` property to prevent editing of the primary key column. +{% previewsample "https://blazorplayground.syncfusion.com/embed/rDLIDCZkVpxqbOjj?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -## Dialog template +> In the above sample, the textbox rendered for **OrderID** column inside the inline editing template is disabled using its `Enabled` property to prevent editing of the primary key column. -N> Before adding dialog template to the datagrid, it is recommended to go through the [Template](./templates/#templates) section topic to configure the template. +## Dialog template -To know about customizing the **Dialog Template** in Blazor DataGrid Component, you can check this video. +To know about customizing the **Dialog Template** in Blazor DataGrid Component, you can check this video. {% youtube "youtube:https://www.youtube.com/watch?v=Cfj476xT2ao"%} -The dialog template editing provides an option to customize the default behavior of dialog editing. Using the dialog template, you can render your editors by defining the [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html) component's [Mode](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Mode) property as **Dialog** and wrapping the HTML elements inside the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Template) property of [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html). +The Dialog template editing feature in Syncfusion DataGrid allows customization of the default dialog editing behavior, enabling individuals to define custom editors for grid rows within a dialog. To implement this, set the [GridEditSettings.Mode](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Mode) property as **Dialog** and wrap the desired HTML editor elements inside the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Template) property of the [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html). This feature is particularly useful for designing highly customized edit dialogs or including additional fields that are not part of the column model. -N> Custom components inside the Dialog Template must be specified with two-way (**@bind-Value**) binding to reflect the changes in DataGrid. +> Custom components used within the dialog template must be bound with two-way data binding (**@bind-Value**) to ensure synchronization with the grid's data. -In some cases, you would need to add new field editors in the dialog which are not present in the column model. In that case, the dialog template will help you to customize the default edit dialog. +In some cases, you want to add new field editors in the dialog which are not present in the column model. In that situation the dialog template will help us to customize the default edit dialog. -The following sample code demonstrates DataGrid enabled with dialog template editing, +In the following sample, grid enabled with dialog template editing. -```cshtml -@using Syncfusion.Blazor.Grids -@using Syncfusion.Blazor.Calendars -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Inputs - - - +{% tabs %} +{% highlight razor tabtitle="Index.razor" %} + + + - - - - - + + + + + @code { - public List GridData = new List -{ - new OrdersDetails() { OrderID = 10248, CustomerID = "VINET", Freight = 32.38, ShipCity = "Berlin", OrderDate = DateTime.Now.AddDays(-2), ShipName = "Vins et alcools Chevalier", ShipCountry = "Denmark", ShipAddress = "Kirchgasse 6" }, - new OrdersDetails() { OrderID = 10249, CustomerID = "TOMSP", Freight = 11.61, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-5), ShipName = "Toms Spezialitäten", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10250, CustomerID = "HANAR", Freight = 65.83, ShipCity = "Cholchester", OrderDate = DateTime.Now.AddDays(-12), ShipName = "Hanari Carnes", ShipCountry = "Germany", ShipAddress = "Carrera 52 con Ave. Bolívar #65-98 Llano Largo" }, - new OrdersDetails() { OrderID = 10251, CustomerID = "VICTE", Freight = 41.34, ShipCity = "Marseille", OrderDate = DateTime.Now.AddDays(-18), ShipName = "Victuailles en stock", ShipCountry = "Austria", ShipAddress = "Magazinweg 7" }, - new OrdersDetails() { OrderID = 10252, CustomerID = "SUPRD", Freight = 51.3, ShipCity = "Tsawassen", OrderDate = DateTime.Now.AddDays(-22), ShipName = "Suprêmes délices", ShipCountry = "Switzerland", ShipAddress = "1029 - 12th Ave. S." }, - new OrdersDetails() { OrderID = 10253, CustomerID = "HANAR", Freight = 58.17, ShipCity = "Tsawassen", OrderDate = DateTime.Now.AddDays(-26), ShipName = "Hanari Carnes", ShipCountry = "Switzerland", ShipAddress = "1029 - 12th Ave. S." }, - new OrdersDetails() { OrderID = 10254, CustomerID = "CHOPS", Freight = 22.98, ShipCity = "Berlin", OrderDate = DateTime.Now.AddDays(-34), ShipName = "Chop-suey Chinese", ShipCountry = "Denmark", ShipAddress = "Kirchgasse 6" }, - new OrdersDetails() { OrderID = 10255, CustomerID = "RICSU", Freight = 148.33, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-39), ShipName = "Richter Supermarket", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10256, CustomerID = "WELLI", Freight = 13.97, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-43), ShipName = "Wellington Importadora", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10257, CustomerID = "HILAA", Freight = 81.91, ShipCity = "Cholchester", OrderDate = DateTime.Now.AddDays(-48), ShipName = "HILARION-Abastos", ShipCountry = "Germany", ShipAddress = "Carrera 52 con Ave. Bolívar #65-98 Llano Largo" } - }; - - public class OrdersDetails + private DialogSettings DialogParams = new DialogSettings { MinHeight = "400px", Width = "450px" }; + public List OrderData { get; set; } + protected override void OnInitialized() + { + OrderData = OrderDetails.GetAllRecords(); + } + public class City { - public int? OrderID { get; set; } - public string CustomerID { get; set; } - public double? Freight { get; set; } public string ShipCity { get; set; } - public DateTime? OrderDate { get; set; } - public string ShipName { get; set; } + } + List CityName = new List + { + new City() { ShipCity= "Reims" }, + new City() { ShipCity= "Münster" }, + new City() { ShipCity = "Rio de Janeiro" }, + new City() { ShipCity = "Lyon" }, + new City() { ShipCity = "Charleroi" }, + new City() { ShipCity = "Genève" }, + new City() { ShipCity = "Resende" }, + new City() { ShipCity = "San Cristóbal" }, + new City() { ShipCity = "Graz" }, + new City() { ShipCity = "México D.F." }, + new City() { ShipCity = "Köln" }, + new City() { ShipCity = "Albuquerque" }, + }; + public class Country + { public string ShipCountry { get; set; } - public string ShipAddress { get; set; } } + List CountryName = new List + { + new Country() { ShipCountry= "France"}, + new Country() { ShipCountry= "Brazil"}, + new Country() { ShipCountry= "Germany"}, + new Country() { ShipCountry= "Belgium"}, + new Country() { ShipCountry= "Austria"}, + new Country() { ShipCountry= "Switzerland"}, + new Country() { ShipCountry= "Venezuela"}, + new Country() { ShipCountry= "Mexico"}, + new Country() { ShipCountry= "USA"}, + }; } -``` - -N> In the above sample code, the textbox rendered for **OrderID** column inside the dialog template is disabled using its `Enabled` property to prevent editing of the primary key column. +{% endhighlight %} +{% highlight c# tabtitle="OrderDetails.cs" %} +public class OrderDetails +{ + public static List Order = new List(); + public OrderDetails(int OrderID, string CustomerId, double Freight, string ShipCountry, string ShipCity, string ShipAddress, DateTime OrderDate) + { + this.OrderID = OrderID; + this.CustomerID = CustomerId; + this.Freight = Freight; + this.ShipCountry = ShipCountry; + this.ShipCity = ShipCity; + this.ShipAddress = ShipAddress; + this.OrderDate = OrderDate; + } + public static List GetAllRecords() + { + if (Order.Count == 0) + { + Order.Add(new OrderDetails(10248, "VINET", 32.38, "France", "Reims", "59 rue de l Abbaye", new DateTime(1996, 7, 4))); + Order.Add(new OrderDetails(10249, "TOMSP", 11.61, "Germany", "Münster", "Luisenstr. 48", new DateTime(1996, 7, 5))); + Order.Add(new OrderDetails(10250, "HANAR", 65.83, "Brazil", "Rio de Janeiro", "Rua do Paço, 67", new DateTime(1996, 7, 8))); + Order.Add(new OrderDetails(10251, "VICTE", 41.34, "France", "Lyon", "2, rue du Commerce", new DateTime(1996, 7, 8))); + Order.Add(new OrderDetails(10252, "SUPRD", 51.3, "Belgium", "Charleroi", "Boulevard Tirou, 255", new DateTime(1996, 7, 9))); + Order.Add(new OrderDetails(10253, "HANAR", 58.17, "Brazil", "Rio de Janeiro", "Rua do Paço, 67", new DateTime(1996, 7, 10))); + Order.Add(new OrderDetails(10254, "CHOPS", 22.98, "Switzerland", "Bern", "Hauptstr. 31", new DateTime(1996, 7, 11))); + Order.Add(new OrderDetails(10255, "RICSU", 148.33, "Switzerland", "Genève", "Starenweg 5", new DateTime(1996, 7, 12))); + Order.Add(new OrderDetails(10256, "WELLI", 13.97, "Brazil", "Resende", "Rua do Mercado, 12", new DateTime(1996, 7, 15))); + Order.Add(new OrderDetails(10257, "HILAA", 81.91, "Venezuela", "San Cristóbal", "Carrera 22 con Ave. Carlos Soublette #8-35", new DateTime(1996, 7, 16))); + Order.Add(new OrderDetails(10258, "ERNSH", 140.51, "Austria", "Graz", "Kirchgasse 6", new DateTime(1996, 7, 17))); + Order.Add(new OrderDetails(10259, "CENTC", 3.25, "Mexico", "México D.F.", "Sierras de Granada 9993", new DateTime(1996, 7, 18))); + Order.Add(new OrderDetails(10260, "OTTIK", 55.09, "Germany", "Köln", "Mehrheimerstr. 369", new DateTime(1996, 7, 19))); + Order.Add(new OrderDetails(10261, "QUEDE", 3.05, "Brazil", "Rio de Janeiro", "Rua da Panificadora, 12", new DateTime(1996, 7, 19))); + Order.Add(new OrderDetails(10262, "RATTC", 48.29, "USA", "Albuquerque", "2817 Milton Dr.", new DateTime(1996, 7, 22))); + } + return Order; + } + public int OrderID { get; set; } + public string CustomerID { get; set; } + public double Freight { get; set; } + public string ShipCountry { get; set; } + public string ShipCity { get; set; } + public string ShipAddress { get; set; } + public DateTime OrderDate { get; set; } +} +{% endhighlight %} +{% endtabs %} -The following image represents the dialog template that is displayed on double-clicking a DataGrid cell, +{% previewsample "https://blazorplayground.syncfusion.com/embed/hZLIjCXEfrNMUTiV?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} -![Blazor DataGrid with Dialog Edit Template](./images/blazor-datagrid-dialog-edit-template.png) +> In the above sample code, the textbox rendered for **OrderID** column inside the dialog template is disabled using its `Enabled` property to prevent editing of the primary key column. ### Disable components in dialog template -It is possible to disable particular components rendered inside the dialog template using the data source value. This can be achieved by utilizing the `Enabled` property of the components which specifies whether the component is enabled or disabled. +In the Syncfusion DataGrid, you can disable specific components rendered inside the dialog template based on the data source values. This is achieved by setting the `Enabled` property of the components, which controls whether the component is enabled or disabled. -This is demonstrated in the following sample code, where if the `RequestType` argument value of the [OnActionBegin](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEvents-1.html#Syncfusion_Blazor_Grids_GridEvents_1_OnActionBegin) event is **BeginEdit** then the `Enabled` property of the **OrderID** Textbox is set to false. +To dynamically modify the `Enabled` property of components within the dialog template, you can use the [RowCreating](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEvents-1.html#Syncfusion_Blazor_Grids_GridEvents_1_RowCreating) and [OnBeginEdit](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEvents-1.html#Syncfusion_Blazor_Grids_GridEvents_1_OnBeginEdit) events of the grid. These events are triggered before adding a new record or editing an existing record, respectively, allowing you to conditionally disable components based on your requirements. -```cshtml -@using Syncfusion.Blazor.Grids -@using Syncfusion.Blazor.Calendars -@using Syncfusion.Blazor.DropDowns -@using Syncfusion.Blazor.Inputs +You can use the [RowCreating](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEvents-1.html#Syncfusion_Blazor_Grids_GridEvents_1_RowCreating) and [OnBeginEdit](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEvents-1.html#Syncfusion_Blazor_Grids_GridEvents_1_OnBeginEdit) events triggered before an add action and edit is executed in the grid. - - - +In the following sample, the `Enabled` property of the **OrderID** textbox is toggled based on the operation type (add or edit) using the `RowCreating` and `OnBeginEdit` events. + +{% tabs %} +{% highlight razor tabtitle="Index.razor" %} + + + + - - - - - + + + + + @code { - public bool Enabled = true; - - public List GridData = new List -{ - new OrdersDetails() { OrderID = 10248, CustomerID = "VINET", Freight = 32.38, ShipCity = "Berlin", OrderDate = DateTime.Now.AddDays(-2), ShipName = "Vins et alcools Chevalier", ShipCountry = "Denmark", ShipAddress = "Kirchgasse 6" }, - new OrdersDetails() { OrderID = 10249, CustomerID = "TOMSP", Freight = 11.61, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-5), ShipName = "Toms Spezialitäten", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10250, CustomerID = "HANAR", Freight = 65.83, ShipCity = "Cholchester", OrderDate = DateTime.Now.AddDays(-12), ShipName = "Hanari Carnes", ShipCountry = "Germany", ShipAddress = "Carrera 52 con Ave. Bolívar #65-98 Llano Largo" }, - new OrdersDetails() { OrderID = 10251, CustomerID = "VICTE", Freight = 41.34, ShipCity = "Marseille", OrderDate = DateTime.Now.AddDays(-18), ShipName = "Victuailles en stock", ShipCountry = "Austria", ShipAddress = "Magazinweg 7" }, - new OrdersDetails() { OrderID = 10252, CustomerID = "SUPRD", Freight = 51.3, ShipCity = "Tsawassen", OrderDate = DateTime.Now.AddDays(-22), ShipName = "Suprêmes délices", ShipCountry = "Switzerland", ShipAddress = "1029 - 12th Ave. S." }, - new OrdersDetails() { OrderID = 10253, CustomerID = "HANAR", Freight = 58.17, ShipCity = "Tsawassen", OrderDate = DateTime.Now.AddDays(-26), ShipName = "Hanari Carnes", ShipCountry = "Switzerland", ShipAddress = "1029 - 12th Ave. S." }, - new OrdersDetails() { OrderID = 10254, CustomerID = "CHOPS", Freight = 22.98, ShipCity = "Berlin", OrderDate = DateTime.Now.AddDays(-34), ShipName = "Chop-suey Chinese", ShipCountry = "Denmark", ShipAddress = "Kirchgasse 6" }, - new OrdersDetails() { OrderID = 10255, CustomerID = "RICSU", Freight = 148.33, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-39), ShipName = "Richter Supermarket", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10256, CustomerID = "WELLI", Freight = 13.97, ShipCity = "Madrid", OrderDate = DateTime.Now.AddDays(-43), ShipName = "Wellington Importadora", ShipCountry = "Brazil", ShipAddress = "Avda. Azteca 123" }, - new OrdersDetails() { OrderID = 10257, CustomerID = "HILAA", Freight = 81.91, ShipCity = "Cholchester", OrderDate = DateTime.Now.AddDays(-48), ShipName = "HILARION-Abastos", ShipCountry = "Germany", ShipAddress = "Carrera 52 con Ave. Bolívar #65-98 Llano Largo" } - }; - - public class OrdersDetails + public bool IdEnabled = true; + public List OrderData { get; set; } + protected override void OnInitialized() + { + OrderData = OrderDetails.GetAllRecords(); + } + public void OnBeginEdit(BeginEditArgs args) + { + IdEnabled = false; + } + public void RowCreating(RowCreatingEventArgs args) + { + IdEnabled = true; + } + public class City { - public int OrderID { get; set; } - public string CustomerID { get; set; } - public double Freight { get; set; } public string ShipCity { get; set; } - public DateTime? OrderDate { get; set; } - public string ShipName { get; set; } + } + List CityName = new List + { + new City() { ShipCity= "Reims" }, + new City() { ShipCity= "Münster" }, + new City() { ShipCity = "Rio de Janeiro" }, + new City() { ShipCity = "Lyon" }, + new City() { ShipCity = "Charleroi" }, + new City() { ShipCity = "Genève" }, + new City() { ShipCity = "Resende" }, + new City() { ShipCity = "San Cristóbal" }, + new City() { ShipCity = "Graz" }, + new City() { ShipCity = "México D.F." }, + new City() { ShipCity = "Köln" }, + new City() { ShipCity = "Albuquerque" }, + }; + public class Country + { public string ShipCountry { get; set; } - public string ShipAddress { get; set; } } - - public void ActionBeginHandler(ActionEventArgs args) + List CountryName = new List { - if (args.RequestType == Syncfusion.Blazor.Grids.Action.BeginEdit) - { - // The Textbox component is disabled using its Enabled property - this.Enabled = false; - } - else + new Country() { ShipCountry= "France"}, + new Country() { ShipCountry= "Brazil"}, + new Country() { ShipCountry= "Germany"}, + new Country() { ShipCountry= "Belgium"}, + new Country() { ShipCountry= "Austria"}, + new Country() { ShipCountry= "Switzerland"}, + new Country() { ShipCountry= "Venezuela"}, + new Country() { ShipCountry= "Mexico"}, + new Country() { ShipCountry= "USA"}, + }; +} +{% endhighlight %} +{% highlight c# tabtitle="OrderDetails.cs" %} +public class OrderDetails +{ + public static List Order = new List(); + public OrderDetails(int OrderID, string CustomerId, double Freight, string ShipCountry, string ShipCity, string ShipAddress, DateTime OrderDate) + { + this.OrderID = OrderID; + this.CustomerID = CustomerId; + this.Freight = Freight; + this.ShipCountry = ShipCountry; + this.ShipCity = ShipCity; + this.ShipAddress = ShipAddress; + this.OrderDate = OrderDate; + } + public static List GetAllRecords() + { + if (Order.Count == 0) { - this.Enabled = true; + Order.Add(new OrderDetails(10248, "VINET", 32.38, "France", "Reims", "59 rue de l Abbaye", new DateTime(1996, 7, 4))); + Order.Add(new OrderDetails(10249, "TOMSP", 11.61, "Germany", "Münster", "Luisenstr. 48", new DateTime(1996, 7, 5))); + Order.Add(new OrderDetails(10250, "HANAR", 65.83, "Brazil", "Rio de Janeiro", "Rua do Paço, 67", new DateTime(1996, 7, 8))); + Order.Add(new OrderDetails(10251, "VICTE", 41.34, "France", "Lyon", "2, rue du Commerce", new DateTime(1996, 7, 8))); + Order.Add(new OrderDetails(10252, "SUPRD", 51.3, "Belgium", "Charleroi", "Boulevard Tirou, 255", new DateTime(1996, 7, 9))); + Order.Add(new OrderDetails(10253, "HANAR", 58.17, "Brazil", "Rio de Janeiro", "Rua do Paço, 67", new DateTime(1996, 7, 10))); + Order.Add(new OrderDetails(10254, "CHOPS", 22.98, "Switzerland", "Bern", "Hauptstr. 31", new DateTime(1996, 7, 11))); + Order.Add(new OrderDetails(10255, "RICSU", 148.33, "Switzerland", "Genève", "Starenweg 5", new DateTime(1996, 7, 12))); + Order.Add(new OrderDetails(10256, "WELLI", 13.97, "Brazil", "Resende", "Rua do Mercado, 12", new DateTime(1996, 7, 15))); + Order.Add(new OrderDetails(10257, "HILAA", 81.91, "Venezuela", "San Cristóbal", "Carrera 22 con Ave. Carlos Soublette #8-35", new DateTime(1996, 7, 16))); + Order.Add(new OrderDetails(10258, "ERNSH", 140.51, "Austria", "Graz", "Kirchgasse 6", new DateTime(1996, 7, 17))); + Order.Add(new OrderDetails(10259, "CENTC", 3.25, "Mexico", "México D.F.", "Sierras de Granada 9993", new DateTime(1996, 7, 18))); + Order.Add(new OrderDetails(10260, "OTTIK", 55.09, "Germany", "Köln", "Mehrheimerstr. 369", new DateTime(1996, 7, 19))); + Order.Add(new OrderDetails(10261, "QUEDE", 3.05, "Brazil", "Rio de Janeiro", "Rua da Panificadora, 12", new DateTime(1996, 7, 19))); + Order.Add(new OrderDetails(10262, "RATTC", 48.29, "USA", "Albuquerque", "2817 Milton Dr.", new DateTime(1996, 7, 22))); } + return Order; } + public int OrderID { get; set; } + public string CustomerID { get; set; } + public double Freight { get; set; } + public string ShipCountry { get; set; } + public string ShipCity { get; set; } + public string ShipAddress { get; set; } + public DateTime OrderDate { get; set; } } -``` - -The following image represents the dialog template of the DataGrid component with disabled components, +{% endhighlight %} +{% endtabs %} -![Blazor DataGrid displays Disable components](./images/blazor-datagrid-disable-component.png) +{% previewsample "https://blazorplayground.syncfusion.com/embed/LDLSDiXETysiUAfk?appbar=false&editor=false&result=true&errorlist=false&theme=bootstrap5" %} ### Set focus to editor From d602af92ad0ce2b986aee36c78cd0df4e766f61f Mon Sep 17 00:00:00 2001 From: Vinitha Balasubramanian Date: Fri, 10 Jan 2025 18:32:13 +0530 Subject: [PATCH 2/2] 932495: Revamp template edit topics --- ...lazor-datagrid-dynamic-focus-component.png | Bin 29000 -> 0 bytes blazor/datagrid/template-editing.md | 597 +++++++++++++++--- 2 files changed, 523 insertions(+), 74 deletions(-) delete mode 100644 blazor/datagrid/images/blazor-datagrid-dynamic-focus-component.png diff --git a/blazor/datagrid/images/blazor-datagrid-dynamic-focus-component.png b/blazor/datagrid/images/blazor-datagrid-dynamic-focus-component.png deleted file mode 100644 index c8ed7fdb80df154d70909dd68829093396899e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29000 zcmdSB2UJsQyDc1LE7DPlp@RjK8jvOksHj+IO7Db7CsgSKM5-7-H-ZQ%O{swpO6bKP zK|z{8h=d{_ASD#(guq?F?f$+y{_~$c?zxvS98$8@Ti5%{XU_So$NIWjER4L2AP|V< z*3E18Kp;982y|HG*iqm&g>6qC0skHHxuzX%~6~_?f}; zrkM{2#M(mpcc{%H|2_!hIdbdT6~h2)as#zo(g?Ai9`YFu4>*}b5LHdE`n5S;7iiykbRGrBO+5aipfUS6xQH2dbF#>!^c z{^pTW2VYnTDD!dJmlw+kJo~|SgTnup{7Q9xj5;zVa_W@b9eh`7Y_$dhjK}~JJF;CB zMyZO8jjgtW&Dip&I-a)kVSuI9`!!c_;Ot*maj$#qO?v=i@w$cYs+41P!uTkiQcQwG z-Aq6F%dZhyAJ82<8UZvcVLW5`I@p($P(!@>va9zGxeu*pk^o~Z^azAp9!Iz?qgDd{dFkqJk0y3kyJhw!WcCizu7BHAsWLM+T;x;Q)v6*kKaBFJ zXtI~})7APA1Wdx)y~0%Yn4UaOl`T3DsClRNqS=hY>m2F;hImon_&lwba}O8MakJQC z2wr+%pU!K|+<%=;9gxL=Cw5QZA-ANEv!M?VP}7X&*^Ohs2TV2oYNcx+QuagZ86?zu z&UUdS)jgu;WQ=c<3h)t>(CZ{$cf!S?7}>)-6CuD|F8T^r2`%*;vbH%vAhYirmi^~X z;lN{jny+kdV9`7_*p6Lklq@xy+}_>>z8o}3{cKMAbqr(0lPpf~w|?t9bvb^;IF=}R;ux|$!Dj#rUD%MU9=kRsAr z|KB_QzkI2i0`j%8m)&lxa_3}Q;>orI0f_`bHS>jq1ELW3n#c-J~(GTAqK6GJPi zSG!cTdi)^G=1uvP_uf3CzqLyn=$|ustcBh?Y1;yPK8!3wukC>#-g>JtHtJ$pz z87Q(g+U?Vz8m#mi=*64sXi>Zej7*Zznqh_WXhoqh5AiV?iHd3$fO$)<5|t?^6Kykz4_yay*bu+udgs!eLz+nIl&v6G`A zzBd!Lm-i}v6BqkEkj{`pbr)mMTFBS(S#LEABo z?axOR0Ug;vcr@|3oirr*CTC zf}^CU=+Cg9Vqy0}fW5-k$&;=B_VDz`Qt0N^*fl6>5i3+#vo-PLNf@v~Je`ko{C4~a z`|miIV2mz7O(F9ZW4xVTHAOm?*g(zlA;Oez^cu?R#4LO659-U|Y!yMTe$RZ}34G+? zuY6-$_@CmPp~6UV7U{tQN@j`WV`43%UagCR2}o^hZ=LofTtpm~X6^O6W3IuwD{Wc;6mhs9 z^>ntTgy8yB!zbdgcm&7$PF$wrekE z%E0DRE*+6$QW=^i5RAQke*fe>Z)M}{p@aLWV`xf zDO-pdFh&_QQKtu`#+VA<5s78Mfu~PFnaj&vq1sg$=ZCk1oVOD9w-SHSpSIIrUICuJ zjH%=kVWgo7V91YOyX{lQ_8aPJr>c6-AZI_66a_xX+*^AR$tZ*IgkEtrzWFM~(~7Fb z8M|g0v!N&A%FTFpr|OvI^DH5OUYS!vV@=XXh9hoAP8qdpll}i*XJmjid!~K zNqL+{|G_(y2&^V3*TyGgyTeAkQNY0DicrY%`@2k_hpnYWP?eIcqWklakm#D5;Fg62 zb8z2g9;dpb<@qz`OSLKc?{JqZZi1hXVPH!;sJ4mc8nuKdv)?&En>a^nuP>qJCAWoo zj%~UM;(XW5*J?L8@C$LNLs4UO96MEgo0JDpeFi7-oC|A3$RPC4zDC~FTPB3Hz75|o z4?2+3VJNc~;sl<14ZSyqz76Z}+@H%V3eyvaT=yp&QYN?`2liLLaa3Jn+u4dPGso8o zjVkx@9zB$mK+e7`l2G85TZ`b^k!6EBjzV&mS03wyWCs9ew^jWifR2#l-9nYn;vyF)A z>)%WA1pPQVoEuwh%>ZL6gjd!yyy_3jEQ&zu9^+0)*{)gyCJP=YjwKKNtmvxOuveEt zjs(uUZuQv3dpsYr`jX6zXu3rT`u;5n_P3gxA+AQq7R zCY_*)R>`~=ndM-6yIo;`74<$!-6zdm%L=TG!c|%IOGn9CUF=0O&Yf}o(Ac5y1lR=M z-YrSZVr!og)uZ3rn}aVb+)fH(@qO!=o*l=5n9&tch_?3GdVPudFnSuXJ1HbXXCg4P z2?SNKptBcpH;O(5Uq`>UVK@Rxy)GHcbN&yxzuWE@v^id`)j4>`bbq{9u*H`fa|d|Z zGT|N`CZXT2Krd@JYv^t1TTscYUI zRMzS=Y!Oua`MSR`*n)7VnhC0Xz2Rz1s8qL2xU6A7krSFpN@J%tQT+Yo>!Ax8ECi`= z%(mZ&&?yOBN>Z%0@3OD% zSEXu+U84ri`KckQK0SI;LJ0YxDI~t{b6+Ur!JUjfw47RDv6R6fbWc`>c2yE8^w`yX z(Tv^iVl$08cl&mFS*i5hgbZw!L}1lukn2S?CaWX65gJ<&KYh3M*Ua|4Ds~=6{b?T~ z3)c(R54!+2`Qed^xM#Zd{?2=Sgk%J;XEvX>>kI@B?um+LuDK%7VbpoYy&nvqhpA$* zJSwB+!cPRkOpZXAeV#$EnMKE7Dj&}U{AkXZkS2&$%tKMqv9q>CO-q-qXe$O57er!+ z{xPBC!O&vK4WsAXD&wGRifQ* zFW3wKUrHUMMR}XTAA@0%^&i;+oK$yS`cipwHg3(;OgozyRP65<$xusU_oT5lHoFri zb6Q)SLsu3YuIh?G)|{Zw)QYO!}g zb^Cji8AiM4!(XlZM_Q9*Kb*Y-F1ov4m3*WmRYmzDQO;*{KSn#_&7C8UO>aKqR(vr3 zTCkEuZD+anZD%d~#0T!LW1;|<>SvSwQFo8gPKC&EkcWf=$8vtHl46+I3H&KUTLmZ= zlI1+#QiaKc9=bt)Hj2Bm{NN5&M(j!DxKyn3m`Go^6{!!sd;IU~!30W23W<}ikS_je zEUUbtKy(~Yv4wV-ij_Tk(uO%XMs;B>bEm?#uqZL83m!*9^jE&JEmizNUn~mW-Njn@vM2Rf7wxD2N|>U6j#kg@UIn{mM*R_{&{hFA?O}}2 zmPG2fPR>*nux1a@HwcpRI&B=-lXP&YS49qTGb`GI($UW0djij!AA!WhvYr3(C`wR4 zfRsyEAJ4g!?(0O!94ychFnl5K;d=$d0jf~1b9Z0tbjcyFE3u}j<1UV*o z?yiN~iEKhTLnuvZ@tTU{!3G3xF!l6&@&dfrjaHrAzoIas z;F8p=uRg9HZnmgV4) zjQ;v}ih2Nok`A(8#lNuUe<)k~_cVxk0o6{7?Yk7Z8{oA-#7z9?&1voG()9vB=0s1H zW{v@H6A+5ySF&$DBX<;79Ysr?|DloPg7F9WU7SQo zetzJSY+sM+@#u+yyf?g^W~^d*ZzSF8$k^U~PnF@NB6MRdkU90|AGsWK>F3AOt(Ak; z7J*}P4X-5pc2{7ep0PO~v4d%A&i_t;3xIYWP<(=t{z3hw2=aaHZ=7ww2ory_#?Zj{hMh}e(9);#>h+#NMjUWv zEI5uGGQQ5Y)KL;GOI{UIUwQl(A@;vt=?lg8c%L^EF3|rXwiUFNVMh`p-5X!rAbDh* zD-7W)aMtXGt4Wo^qa!J*@cld~I#c=}JwiiOys0e{-Q)P{e0LNH{Z*YzZO;e;sVsxC z^2YLdlcXW1H&}R;A-=>iin=4~IPYRPe;2R5g@J5*i(pHE;A{~ z9rm_P&+X+tmHD0dh(kZeC6=CBF@5$HOHh~m*pKfnKm7UR1!G||kz8!!w|;MlwA`$z z#%0DlwKR<)jfYq#xzTINir2t5*BUpL;78ar2)jg%aWI$pSXEy@FSugmKI{wnWC_P& zQ9L3zUXk1u%G}f)v`C6UTMc`6NKHV_K_Hl0%`h3OjJ8x}ipml*lmHN4CGx zgbT?KZVB(JA=^YlD>P*MB=-~9U6oU>Hk=yCbj`KSa-)$cN(?aH zrC^PXYa?J53Uk{XH?_(E6>d8_N|tlyNte7H4lD!1rrA72J(oJ-ra|7yZiDP@?_DE0 zRwIr#8voU(r0>`Yej*tiV&AINc=}68!Q4{Seno(u+gJ6FwsdQ=`i-7o@xJlUrk}}Z zslBzW@3rvsdtifJyX)G_Hg7+~mDj581`%##Xvdg`zukZy;?g8jH(Hz%Wf%_;bdpv? zIS)HT$*yOuaPVCSU3gqe9tyy2^U8!ac-AZ*YE6lOnVW0q*!Wa;4<)F->fK$gd_u&+ z`GT1DrN_NaEf{o!*f=Dy#b!30IgU@*cU~E)RmnwlkDAt>wrsnIips5WUQ~@!GTyNN zmOgsiImRjpl2Y1oh5wJ#-thPI88vRQNS%erbEeYuOLydwA)>iaJmW7c4#^ki%Z7Lj zycK@Jr7w%47L)dgjfYW5xl6a=-)SB0@X|*M1!uckk%ahO%ypnoN}rt5L=<$3 zqVqlxPmZfIk%SP5pO=~hx&Cyk8xNiHdIsTk7qTToQ7E%VylxPW-SB`22v%Ne-C(_C zYm+lT z$V(abxuJkua!j5x*mX$ga=Lt=P4ty3k+5D4?4V*uX+B@rcu?qPMhiVEk4urS+rGkH z2s`s#)duS^Eu?2g6nsB7-93${*VO5$u@2sgZ<)Nd;DKK`e3c-8Z)f|EXBFrofjq0P zWONoOWq~uzCPcq{HW2Y4I8K8KuME@LRu1H`TK)bl^Eeaiz5Q0ZAK4a0?dMPBjluAA z3_;#OL=E#JqhjMY_h-vXv&AIm=4 zOPP4l*5lm-*IaEO9Z~3RQYTjp5fyP$r!MI_y<~%Jm{Z3z;cJ>APi5v=VM`a+hGvDV zEf9tUS%u@Mp_l=eB_4t&whL*&QnWt$K!VDOvb^;qx>neBf1>@oN zT)6-Y=TdVpt!9ug#Vwyk3IFNhGic?n!)ekOzZRv3dKh<{+bC@V5lub(_NMaa+b9O8 z2=MqXY%PBq+Z;Eo^eVI;2bcTe?5|F?Cz{QR4a*4OuMyEpn&b@*eB{Q3kodiIQdlLF z)H7KR)h0HYH(_AH-&<>2h}8~^hY6-di8%Am14;nbbB#WX4-}}p$x_77P0uGKvLd5Qwqu--7=u>@Ek?yowcLOIg!$SND*dpv`Ya0=+IE^ z`Dhx|O@vXQZuxUBT`u$R6eYF?29Hbe;>9b6zN;AV^+%NDCf-&XR7PI6Hkhg$jKbJj zueI!DvZS2A|7qw!+(sjfTJ&^;o~^e>Xy;d+r#BtBV%J^MVj2K(x%-Qe1(>yH^M>!Z zYbbTb=~f)^8r(2C#Tn|hk&GE)t3h-E_tpv1>DA}5kO^p*FQMK8dY<2hL!zY7Ot5Eq z!n@5VRY*V%o!ggbDC)hUiR3Tj@`VwmX+$zy;!hK_+z`U24QN+hX&VeFj=}WqdN)O* zVH@O>z}vu+SF4151=h#B=M`!m&l5|gyYtzZGVaEY=iR8f&2T^{C)t6EBHx&*aeQ{= z#8)H~b%?s%QyQo!h_1L9%Q*k(DB8IMVvH5|oWZO73^;J?^%=+Nr}%;rzD*4Z6d6nyI7;REcB?+#D(Mf**I#ry4Z!s^L88HcKJ|YV76RhS z|8Ik>*3q(Rr*v1hRwi39u(r4ytwe5BRn^wORmV)R@gUy)N?Y zBGjk?V%0(|G}kN_z=_|#w;!ksp7yjHH2Uky+u-1d$71YWLR~F-^-~?O)odg{&G`!& zi)^$6nrg{1^qd4#p&~&30Xn9+5VLw2OlQguNI-MH@H9JR{1Q7J#2o|3Kq|kqiw~j7 zY>~1LTLCGk1ejr()PWJ|qJuKqdi{^z>c@p{wM|Q}nb-c@dAhH8J6|RY6*LfBY2+G^ zSp|LX3Xiv&zo{HnMI0SIr>Ge1E;w8)Ii^;9(He`vn7L&v&#UOUolK8VgzgVb2T(i7 zc7sxPjBsE(jaT$I@Y-vcka4EgdF##EiP7LC0f11Sa>?7!`6P`L`08Ex?Bcr{w~ZPS z68ar3-T}`?T}3%Jq)MUPyE_?F^u~O>7XpWbY+9woCc|1o`WiiIn) zt#T&;vXPC~##hG|i6VL$)CXRpfiql#Hera14Rv*@q0;gQf|=v>!G_5M)pp;37=6A< zwbjoTBnn?M&!ji9fhM2W?AopD3^p}Z1LDdJpF*d`l%kPK_j&L*_6v+o<1s_GfWbsY zVoEHI$|B4!)E_oxfic<)=y|t;jQCRR5X}9GidAvNwl8reQ9{bb*KZ>+x;Me|@y~?0_#zG1&LoY)(PL?QRyG{t zl6UL)@gV_mRy+p6JIgT|msl(I5w?6rU-DK*L}l#2Sm-;K5Ps(VmWUp^X?t?ww%gvxO+z#1^3lAXu#I1+2y>hSxl zFHMqkUp>G1PkliQqLD8#`kd)`?78|z{!`-Egg35lQqDUa$3w2qK%d#k)gKn+jOL8P zEpw$CKVUNMf1&tCeF59&?#I8d_)(Vj z`4Pbyl)kmoX4|weR|=)9tmO+9714Dxx>$3RnBYu3hHb!np=BJO(G{;3nu2;>UOM;A zC8H(v@G~}DZ)1RiONp+^1~tVdL7Gyt~p z^F>pA$S_+ZMr{*kx}fQDdAwsmU4HL`!nL1S`y`qR|KnT~b z^M29$Ar$GNSk>?nigHuh7P*vr8j4cVWt}4$mCg;IKB`OyfV3nB#gOC|rd}5lDGhSD zeo*!&l`H@{IQ#jLndE{<$(KOWiqtg|9A_kFtfVPVA1<}WhshKJ!6(a_Duy_^W#Aum ze%Lir=q_s^-lx=*Adi3ilQz`J_k}^9g163hRqMEYBk*b*+mdh@&Q%t|On3{zppuF* z%%*H6Rqskk^Sn#27cZT z_H^?iGO7xUA8N(*%TtqOnY<%qwciI4^<)d!-w8jMN;XNkB5~gs%;6WMgJ8$o8ucHM zh4o%eu?MgEK0^|2Kn1>&q*Re+nPqS|mjw$N`SlWM@RRxR!SggJsT=wkcMtrg-?$G` zs(42T|MrpTf?{jnVZjNxS20x1B*xpdo%&-l_s%f_{8Hp}%>F(Y%A68)1QWc};4d$h zkkZZfv5W~8D|MTuxcGpRxSJO?t_uChiC?pK4+E0Na4C6a*geFKFN0k*>kPE1_3b0W zg&2iveGrE%X=d0sTfj$81P-h{Su^uSB60j*IP@W^!12oN<1a|Kt9^Lw$p53EOxC`+4WV$ zzpZOF)=KHKe8+PMz{ycy$pi3j50(GNxTXINnhqma<71mcR5{T#CWTc}ii?lWN~iai z=OJNFA=4QKE`JsGa~pEb>e#d)2P+FiH*lUkAQn4^T8Ptr znE5={xtyun;EuaE(?O|-)T4{bjHU`m9oD&@w@t}hC{rQ2%J|M=yP`5l@8)xx@8Tl{ z_I}}5oqJGJ<E8H;Q9C3hoUYC|3ThlJ&{C>sXEWf25_6eMj#5gvcZy< zIs0{TrjpZK^=;tsO@*?km)SNW$L1h7FaU}s_i#kW%_FN4@YB@9>96lyR=<6_d<~rb zq;9FP4v?26#I1wLm93`}FUh&cY5>&VtD?lbH$jB}AIL|usleswGsiyQUr$TL5eC3t zOwC1kJH|t;0o}c|z##926lmwpZ4-R-`qLs0yLBU5h5Ij)DmkIdv`!~Lj9)4-8gkGx z3$TZTVIbV59BcP3R6?+Er`!e8qGhE_ypHwQuL-i!#lLYK%@(?ek^`v1`&Yc*ASz`W zGnyHC6mLag!WnfYC9D(xQ`3T*o4!SB=no_$IubJqX1Mdr(@v7 zCo>Me6N91{q0HV_CW{vfF^9h@3|f}=809Ipq^A1YFu;1Q-(!L$3oE#8H$P6x7i~U{ zfBNf8-)SiM=3>$rF0zP}fQ_HsjU?X&8@$iQtpMzyj1b~@!TN6ToyL#%R=76`vb%=n zYGi(ffLF=5DaA1vx*sQe$MK~Ykp)B;KyJQB+;d423RAq%BC7;P&eas>*<(AOI#c+h znW`K+D!PaK)0b?tl(8*?0OJ3X5q81DfZ6r!_*(T|+P%}iIy8^_^5Y?-w$R9|B;v6Z z`R9(FH(qzcM({Fz-go9(ZzW_}Gqv<;*K}0IpGC)35rs~xea01Lm}w?CDUKj!kEwf< z+U(=Pz6%KVr4_Kb1FUr@W>T1+Pf@o;RuPVLslk&_EAmpvsL7QS3-^K%>xD|vrLm?R z7*bOlrH0(Db^3OV${Ct!W#(8;RIwE)GLMNDDAogO(wr4E)n>%lE4M z7?$V6qNZEMt~%e45H()1{}3vvGFtWnH(X$)XX71ATG zJyiV7EmPR>yY=i`W&}s8{Ycr5&z#3^eC9pL8-^)z4Sl7+lVgs}fN(FSZ)k~#5Brm1 zJk9fq$rmoi{ie08SYgoP+$|@~#J}K3oGt2h2>kTyMJRLa=L&Ytgyh`Gt4`*tmGvd@ zjzggVb2!uL#-S~YGsU(o!P8uRg#MxLmA`ZhKvQGTiK#j$7y%6DjRd?2eb6yzm`jeVds~7tY*>h| zqA~Q?AHqj|o5V_DWTCAoJke5Pd0bWm;||0#rDFZnRktt{8*pP;`^hWO<2QiYW(8tP zhK79yt)_C~FOHLLYTRg9HjE*xAR?&&Ar_R2pokx$Eh;y^&^|Gf-8O$XwK%709q z*^ood9`{OXOB9kx5KuMdR|~2je*Jo$RY={EU*&<*1DXT*p>MWNSy!iu*1To054LLr zPi3FtQI; zzq#9QFTU?wDT|Nqw4+?3*1n_n8~$ngkMx#iPNcEgZbq)cJpET|Z*y*b*39oEX~)r?EU` zxdr{#y!B7|evfcmNcfdK9?2ayLb-s`nGL3rQA5p~8(HfubiHp>^o>d?k}3Db)VTn0 z2UH4PO%THKHBa0>iC=?W$YQei6F7iRLnZwnFL_fREi3AgzL*MY>*2tcH-P|Ip=Awq zdt>fER19L8%s)z!MwiC#@O6@S!dhX5TFL&r*LO-o-M(Jl7pX=xtJlY!luR6WXm2wc z=JX~V2olx%5Mx%Cu|~H#rRE~Uar_2Tt4Q+%KzR(EMnkxPkj3iyroof5|8fqy!rd1& z&GLJr4M$4L77N{jXC4-PeFU+eH>q--*K168teOU4phdMXsGD+TUYPm4(4TUPi4d&K zIo3k}fpWA*@M{d_ZY-}#VY1!&^C7d+xB=Vo`p3%(MG1wA=~g@>3u~*U+Ir`YAFyYU z>-dW}Q~OcRhB@1kKDO_*kd(d4V#q@egn(fOf9JyI{&7mES^Q9^vx0FF#F%hTz2`dC z%DvAcClH)Y9J^5|h?N2o9sb`JSpbb3bS5wgWBQS2cAj62 zttG{u2kMqxQW(mvegRqIJTlT>KiZ;5>qS7RxQ7%!n<0zcpr~Kwvf$Se%c;VRcT*AT z0GVnRm<<4`S~e(irkXbs%-BGu|7NnMyqf_<0A(MEDMgt1cXHs5rXbvO*%GRaf8{B7 z`sck<9;Pc4J>{P-covrQ1iiruGQ z2d~f-`4W~j7k~VO+`K;1c?@=irOM0JwMzo#U7fh=sa5+IzegLNJ|~R{TG^URJejDz z<1}kzVr69cpcjZaDg!s*aC1aHTE&|MM%9N(QkPa|0OFR$A@(4S!9Xn%P=G+P_L_d_ zxOit>mVBEBimLOQk~jmfItLsiZ4sKS!F4o7Wp*Cj)JU_TX6R|c`;DEfaHedP=(J@k z%y(Lx`aLE&q!f*WYM}KHU?~CC2UbOihrz|oJ~Wvc)AU6ec;Ul$Qt(=8J&bfI-6g2;-m)mbV*0w zhEw_6-QBqzGY}hBT}Em*-&_G4;DF!wbC-0CESDJo-uQJ`m_)-)7`=aM*P~bTv`_*s zKPJ;x3nl(sMKw7eV*7G=DT&5%mRZ}SobHh63sX(q zr(CRn1Z;=KEdntvs-MeT(B@<3DM{R#(~;aP#d6)@(ojynwIz9pr_MD)WF>xu_Zzp` z=BV!F@euA{w5z1Eb`%hi$Ccewq>G8h`?5G$-g%S0&^Pg`^g*2^x+Iz5YPEiMbCe5k;SbPgkv@qx1Q z>+geNseHV8msYN=44^|Rw^kCvENLw^Zd9VV*e)$!-md>7`}#M9ieQA5GoDest8_kl zPIs;`)-Y?@BmB`?0n`0?W;=Z7MiwyE1O_#{`(Qd(D$Xn4kAOy06)kSGnZbsa3`W3& zifPvxF+yVr8#zXRURVGZCUZpch!n8Y3(>Tt2I4!HgYVe-vAZks^Jj__`{J%Z;rEkl z>79>9XK_AC#r$ZjIF64*fMnswEjCHJ$Vq)fzKn(*>>_hekYL?yds7WR{$or&rwLX0 zuIRx@l536ie#PLid68YE{^FS0BX>R1PuVHa7IA~zPOLcPN?;&xSZGlT!)#E_>74c> zEmxl9a(8=hiMB){CJ{sMPTUhIl#w4ct|~A?1D* z42ide>^y|e)`ExJT$BImc$$ByFQ0VMRA#&>3*SQ-+u!@S4HWl;oqS>CXSVYBLicmP zUd2#}Sux(+TV}_zn*h8wjR0|bGa-JXx^ag^?@OfY&2Xa_Sw5!nM>>+bp8~E9u_aj3H zw~WZUaAOlIU!!-;j4dy)Q%y;y42hj8UUaB5p#7|sZ*4E)g_so65)hEyx792Z*0wjf zE&A{5T_)RLHz*L-vHkIGXOkb-Wt`HI|#kFTtBkG6@U*qbW;h>@1 zc)(63JE8d)e;1tk0p;bi)krlhk$9zGGugfAyhB}vDGukh?UYZ3A72cs=KqqlIOZu> zv51=7QNe)$Uyy?S zmtH`t&G;)={yr*z%>7pg{;%9b`#e%)Vxmja4ROuQo%9 z|4fx$F|PRZ`0j{Zuul$=2(AtEtSSrH{5Bo%6_0noAhJV8zR;<qPN?b{n(d`0TJYYw$&NOISce-(g-z8#Ra&GNfzxxBHWEr#2- z?vTYUL50l2+7CI+Vf&JQ*{jY+%GS+0ejR@diM9r~XXGEJ5ZN5o6Vh~sR?Un!Qa{$3 zCc}ax6W3#8H^U#ieUrB98C=FKzNE`Lq9$({Ms&E;?NV}gpOmv-AHfQ{BJy2aiDQ!b7sV@2LgO?meoH_fiUSYuo-*?;%nP?}TbJ8gq_hYRd zDs~(D-r~LRhz9(cAjX1*4$KQbIo>!4pQbS_%|A^&!09Mg9BAMia-iR+7s5?2!34s@ zT15P4-1)21NTX?%!J>V^msRe|2fjqxK$HS9%KvEm2$PA9y8-`Exnh&z*W8RS4$3v~ z{1X}raq-x-l1D~tf~(Qz{P!OKr5*<(_Kn7T$~;?Cshb0FNLeRZ2c)SYb^3iQdFGR7 z7ik=OUd5fj#?4z_qT{w4oam+(^5=y>&p!|Lh^gQ_6Kq{U=j_9RXh!t&8eZ4UZz)B9 z&%k*R!YwURrSq$0Q~zafS5?PQ^3;^=sD&cdJM;19jHk4f0d>IOfIS3Z=YNO=X*piT z>%96+x00LDCI5E3eB+d7|BE4ACfF4zrQN3PV=%-&WXtq*D;`ZZlmBRe6VT#+IadN$ zg@whsC23m417^@V7{2oHbRzP__AHo2Nqx;d513-Msdx85h%AXoa({tA>wt-k)vzB4 zJ|%zI{r5w59&nzSL!tf@a@C8dRHu9V(o7Qf)}1b`_Zzf!DvepHV;@^D0V%K2o+?N( zLOM~YvksuS#L0(tnE&z-0dwv?HA!wG%fg!m00*PH&NsSa*oLAmZ-u^-VTE0H0HYilL_0UB zBsmK`6FK>PJf8=Wd(g!(j1AO{+T2EM<~q67JEvo1cvZ0)_qvyAW&{COr7JC^Z(xQ6 zU3)dXGTHV7)|SAfl_)6X=jRvK62o>fhE;&~_2HqGI8^P#t*GQUbm`V=lqCuXf9571 z2rEQyR~s#q5Gl;Uq)!J&L=AG5oOWxd9dvgJG|fDGEVwCpi6`e%aCz~{bW3V%aT`Tw z2l=n?%IB?kI2tpVn3TD!#RXgRCp3x^xneM(IK8cS)8)r^2V<}vBm*HGKrT|)&X&XK zVb<4%J-%d!dQa7#pyH5K0 zI@#csI`TCrVTmXYChJqfW2HK7VQKZbMD;epg^C8Yu&tJ41l{tFhWyQ#u>HuTG0~+? zEZ%~c2$x_Eee}=$d?x`Df3v1}*unIblsSK4W?#-apTsx2e2*rLFDH`;O;SvoCIBe~ zuOV!j)TGsmW+9A)6g3F=o-$%1D4X4@NLB*Yh3_|=12EEGO}&T}-~}e} z8^xE8Iz2JO^8p_?{WoQUvLSLs4j(>;%HTZsi^MjF7xD4u((=fWK_8}KDwg4_>MGm(O`~?t1izNVwx|j<)QWRxr;ZJYiY?fXy?Y(*%@vT65 z(_fIK3S+h5F(0X5dXY>RBRP^}#=^iA(Qvns&InQ@h6@lp;wfyfspfTZ4t?UBN-!(E zuRZ1Q?Z50g(Xv7}aJ9L-L6SWS14hAPV{G$smBnoG<{mPhQ3^)BBha404WkkCdn`S) z(*^5-a6}i^c8_}t?X^!uVv=tGcOTCbQq}_Vu`bM-yf2IxP`%{zV4Pz2dz>sl?}_5` z=Zd1%>g%uCU%5^$Ci6ojQG=(})92)i$_wASdITzaxV_tW(*GnhutN7$*;2K~-{OHK z+7D!cWWE8CX;a+nX~?f^aivOl`EYgO%r0x$8xz zlhsSLWBoxW@>CswvdJ^K{hLjGvBI z|1pZuH^#c2z`M+q-p)^d-~eWtFK^%L&Odp&a?(=}>ShFJDzK2tFM#+>k7E6!q!R`4 zyq|={4}@IVq<*< zS$z8+p`E~kXD2=XR~$?KW}P!o=F%Ouw+a}KW<;>+rxdGz3iMxf%Fh85B#Ez|j9EEa zs{G%It^W;x{%;4%@CkOBkqJb`B&_88>tyjS;)@^~S}ph6R`nmx4gfX?fHjR1sPZoH zu1l+*$*7eYNA(5NTBmjsxBX39T-iKC9J6rQmmGOv(y9kHQRru zA?5SXg<+rWVovyP3y^Ou;AUA*1gIcv^>mtR+=1fmr~>$v%+U<+C|QkBHD&W;YNv zfLL(iz^F&h@g%w5ff|)edoaDOJ-c)T??5sjR4>^Sp!5Fe> zM%vNT>*D|1O%_;Mp1sRy+{2u08tD~K6Q{}*Xl!a8?sPqaD~dZck}JkoIePwBrCQ+6 z?@on5txaaFT z3NPkCIDyHI5~b9NZ#&x7FY5q zEJ7+VN}{RL8Npa-(p!{yQaWPK_Q(XSt^vUnom~tNVofAUV6T_MybcpAl)pco@1Zlw zr(TNgFOX7>hH6K>MjRI64wkjMK7q5%k*3NXtZiyfV8Zy*EwRz?M>x$K*zZoxp8zx2_x)Ei)^)8HB8m-e7_rdHs)Qw{9 zPGTLzAkqnWrI6eWUo?Glc?nQy_pTwM_0;6&(aA{JAB?|_hktJh9Na4g;R|-O^M>lMya~<23rtORHElT2#E!l%~89hTMZeA zbhAk$(D~DC5aZ%R(fPcui<}k_>!R~z1Ez~h?Q@WZl+qg??19J@ATVSNbh;TcUI z{k}q|S_^v=;l`z^s0Ldm3j%c(Lux-3+5qAe1paaZO!rWvCJN(1KI8v{96@1GDPob2 z#4G}lr`Ddm55!~LS{R-6>HP&nX*9wKA=H&y6fwA)!CwhPp-e!Q{7a6=O99HoCTRiY z`?o9!t8`LpiHFJGxPWfPxz6El$^zi`iOI4)WdugjV$`WY!pM6=bAm%*&2arap@6~; zYRpIr-0cOGqyhy?h6(&s1jdLYl`u7CBqjeP+V9%Bf+|kV8;W>@4 z_pWwtHr|zmwm`Uxr;fpjo&y4uBXh~Kf%m*-j)lC)@w~ITIHILK|6xhi1MP$D-^K`- ze;p$%Klp_aSgso3}^fs9)3JojTOr~s95^nJ(RwKT!85~tPN z7>tY66w6#?vl&#<(pp!E1@RD5fJKT!a5r zu%Afmt=~)+O*|`Wd_0CVDK2RD6(9`wMbZ7Epz<(M=e+R62zt zpdg|}^K4;(K#i;TFE{XC3pEUQWPt)mh$^7q#a36ZvReopPbdAZuX7ZqVJQ$GtNqI_ zK>6?B2mVtvd<*vAzS9%(i9#CI{HlH^<)AeuOnJEhzj{cu@`E2eKRAJ&f#$E#UhLzW zK&UaFaeG|{n|bh|gwG+(zCBr1TesxEqQml=x%>tFe7ltR#Wg0v!}i0%c*jw%HG}FB@x-fHK{_WLa{O zU^?I$2R*d^J58+u`E@U|2ML<3+b5dB96 z`WdGMc3@^wzz*Y5*!Z~JcD;*pe6PE`1`nMa$J&L`P!x5a_c1uLb+J{o(mGRcp-&7K@k4xXd(kfW3~xU0aCL z1-o4X-?oEF5)y61qIU|I0&zPVhi>ODc~bg@j!Cg?Y5`HMuYznqjDeE+y+NQK^sX#0 zdmWB`4S@nL@i|{N_mg!P`&48kMm@l;j>s<{iG$=m#GcIbiz~jJ{=S0E6f z;Y`8NSNliDvYocz1M4IADUCXA=1vq0BEMz-^`-JhVn89U-k(s(d#*-Ji^pr~etaAq zxic_Dcrg^8@&zxl7CN-Q@4BHfkcjo^kg9sV8Z|^A(}6B;-n;;qp&ZNH3r7+1jJlIkIZqX=-LpDe zY!;_R8Dpx2Ay^X{mY)K`< zi?6O_gKnz~b|BD*7!|@@P}gq$F{UU}x^PXkCR8$HfE+VSdhz}NitIG1y9HGhJqu)! zK-3jqy^-;G>%C2pYU%T=E}{F!VCQY$-#6a^-ZORcwR}q|y3%lyc`lEkm^)1aIUBLk z&K9Y?(3bDuLrUktxBK;JxV5d*GH0OPu!hmNAyN>CjVh(g6h7-)MS|>~+r!TQFXNyc z?Me5+>BkKE)FZ9^!0B!pgUPao&B|!e|B|VZOdy*^D^Jy97R#k)ODe!L=f z_pd9>0k`@wt74z_z)Ii#vKCX~SZOYhd&_%N@BdK-7%>5Z0=RtJZ=kTuGU9=JQ}&S( z&+UE-o`b7P`3Zvf5bA|@N5wVr6R;M3;PT7%q#5QmLo~ol)YU@x`RD43_Sf5W3BzkrD$4NE0*%HHO zmJ^_&T;VK?&il>oa2sTb2 z{f)2wxvF`RKVWwRyi-19%rF`h&v5@=)m>>=Q)!l_q!9%qR;z#_M9V5H3t3!1WsA6> zrGS=8fB+E@Spy2P6XFI~g5pxLN}?hGWZx25Qv`_$LQwVuh-g6|Ap{HwkdS1)i&~}C z-P7~*OwTj(lZWKye)pd5ob#RYp7+ffSer2Py<0vv>EeFH(6AMGz^y6=1GgF&+^h}Y zPT8xY$}zZN&eeHS89oiCIjJ7FQnDH{#jaqT8`0mYHnX<>&WwbyjpPh!&niMYuph>~XH;Rpf{N!%ea|fHP zVoD(N&31l`fM)Hta>^haei4-)XZ4_II@2js% zSPLA=xKY9qM8(f>Tg&ETjyqK7cyy;=r<#S~d$Jl<=jL7U1EIccbRI{9;bW?$S{uP^QIEL>enrQMjoMKv$r!GEC0N~ z&G(y;EN?h9<&yozH9tFOsVZJqT3cb#kqr*@_ljX~pAJ2ZF+ZIL9-Q_Ge0U8K; z)Kz)TnTphr+u_jhAY?;g&^?{Nl$8EA_R?mRxUc~H_F?Qm69a-@2~=Y9bE6m!XR1H~U)>~{ww z(V%TS>5y_{B1d(vuIk~z=|V7<^S}z@f_c}43eX8a&d4eXcO89#Ce`s#%+lG-eW4T= z$IuvhF~!~m2bQDr37`Nrdsf1(*8G!zNu?jO5kJmbmJGQg>z_zr3iok;_)8Lwic)Ie zp98ro4#JRpoWoR5_#gJTW&e!FWT!c(O(@(~&3_k_^^c3Co?rj~u*g=QWPUcBIzNN* zdspZqLFxZ-su8haKftW! zTS^w+Cs3V~7o;SAXc&Moj`&Ri9DT1Ko+6D zcAbs%xI}M0qHP;TB-~a03u~ZX=HN7Xkg2`e_{NNB|Mm;e`&W2EBv{%qaVn8(jQTKcE%7V?-r&RpO_8yUfFTNNmqK@m+H_3WtZPB+6#ae%F>#_1Ij{C`VjjF{`A|A-NpGt^z6fE6~xQJ{4z&Bo#LCv3mRxQ zy4Hi>`TO`fI2C>vh5Ild^xrNH{F@Wff7(m|mT@v;*Y^om z2bmb-8;z}JNw!y&7CL8O%Ekd8-2QIbes#`6^^P4q28-QY$ZDrl4mIRCbQ+tkBsS^0 zRS-B=uwK%MoyR==B;KIXc!6|PX~{jzvQrnoLV7X*s44ij29L2g2#d6Mcgf`gD+f3W zPAnZDl9r6MU5p1l3G=n;s_jg@rwbGdTS<;+t#o$7kQ;NvAR)8LtGb42$_dyS;5oPA z){&O1*%GUKILfpQ*ZTTEtX`_98DeUjl^1-}MI;zfP%mvfnO}JGT0)32G_PPs%aH zNMCe6Xw#5|C={YW*#R1ORv#H9B>h6DdAcA~oWH~eavxu=7x>A2Ykfv?PF(9e>f>4e z!->l=0zGPXK8&0vIfJB$l91g+h5@TKmtY`AHb1uJTx6EQO@N(VA~M9j-u34T<{Ks0 zF5Y8x;rN2IcAtDb0Jh4Dx*zXX-A82Y6BwJ8P_Fw}`ayN-eC=O5?JzGH~!_$?GNo}=;dAa5bMkN-SKp+H23W&+!E=} zudHuSOqAw?bt0nIG3xXo+c`04Io)^k9!@sfXe51Yw89e~er8gYGNC#&`_`N_YgdkC zLS)bzT_>+0mxH5L==s@FKk#!_Ut;*7x8d$6LnIHN`=+16niWFmyXni3Qi*%x3wgxD z8AbzrIVHGLzNdTi8rX%g9%3mUM|lDWp_?bZgNTteL05O4)&o#^%p=0j*McFBwIQgF z^#|y2Bn=JTVQq+>$YeL^yUU-UqrPJh^Poi}jcQV68s8$LhmcKggn&bN3qwz7vHR8j zq|YCRx7(Op(gnLFm-J8XW6sHhup}fsdTMOKlxBk$pPR&^C@8~fS#x5t;QZbehI~92 zroqAu_rBF zZR>YeM0dCf$}RgW+3D&2 zRk>qFF;mW%^`@{t+}F6nvJ^lO$7E#)8+ zcLUOz66R;NUUDdSh=XHIpPqc@8HX5nz>lvLag-lohHR&;9AovB^kWL-tIBa>%5)8i z;DK_}PU6WkZan(Jiw6;E?_bI1WMR^E+boY27UlWWu|6(G&M4}ND;g7VLy|^vojmjH3%C`^kPK+Q0c|#tDif1z zniPm@M2*%6l`}Y;Br_Aa=>;W<_j8jd8HzY=j!su2*yb$9$_(RUg9ipj0D*bvq&Y=k z{toS|){p`V9<+$r5Th@2$Gk)Z)K-ic5xdHS&<42s*#mtnR7vo82}b2LW=@z$@rdJ0K96H`)U?BOsfcNuMQY^KR+* z!#S?v0da-p_C2E}tE0Na;un z9yzf$TyWngoiB%%$-^d;8`1ru{k@6!BC&jvFL3G`k4oH@xTLC}EtD?#ccENn!jUrE#Xu^^R68_# z1ocXPW;M9mJsDHyzp?nNA2_#XnZn7`r}sRC8a-?cWr2$xW4^ah~u_~au0_z_Sw z_$1cxMg9bg^xO{MZFc-QY=5ry@ny;Zp2QH~LH`XLMRuY-UpA=3&Z~(0YYX{IhUCK` z?(;kNf2}v7K?BYd&~Sr-@TDtmhuD6gumkD9K+k+0|Nil%!D)t-zui8kWe#LGY_h?> z6dcx@tw(9KSEhm2mjb<4o#$CGC6E}2rfZnnxq2ndgfH2@RNX^lH!_%CZ!!dS(-Bv) zY`xubO_%dW&i(fM)|Uhzyaop_z;jgy?gQx2xIl6}|YpG0ZW2o*NY&OrPnH)azq_z)1JsYerNK-;FjsL*IB zS2F_=3Nqn1=K%$vS~F#?bAC`M<%fMAHE43xM`WCoahq;yG=U04b21i9HM(UihrUz6 zxtAAI)LL(*$%W2}^WT|QwaL@zF`~@9e-DI!Sm({J*eQsq#dZtDr_~|(p1eQF|JW|w zJ%4uvI&XMMdsRKeTU$F0d~LIZATkBi7wR(+Fc#QyDZg*3DJzv z#+61EnNd-LqnDqxD>v_Blx}I=o*6c%sw`NDKSztdrdd1E=uxe?1n)Z=?>hA`FjaR5 z$j`W1`BbK7}J?- z#B>k>S;!}(r+FrlZWMSXa@zTE!>MU(GN3VJj#i@2FwC5+FmS(0R;aH#U25Si$$Qpg zMl#}T>AO);7A{(qZ`48#k5D5I5}46m41AnVDlabJoxFdmj!f#O9Z?R@(dE+iKopBH zJ1go#_+WiK+nw~JL0kHaMkVc;1#F41Xq#UEohx#Q<)(?M=AtZ-k_i(Dki>{i#kq9R zDA7!EPY^57a=M-KY#7i_z|z&xnH8@x(f*Rh-mFBtWcrrnHWRuoMh8XL?aXGuTDF+b z1KLFmnrkiayOn z2lNbp3U{?yw+SzJb~d6=H0UeB2+ig;%d7IQi^cf^wxvkj#~vhj-F10r`}vvaGR(*;ahv$H z$i5ka^<}e}LGm17L58hw>J+`@Eaeg3K9PjycT)z6Yb}eIp(_i08Qk{*p);?cdyL5m zp7Cf>X{nhk?B6_<6`IzJBiLkWcC3u4A zb7MOEbh@S*$y@ev&9i%^UR&8Gi$G&Brme=iog#qApV(^Gri{Wh2@~U_`_tsT(>U z!PzN&B}H7w6%lRoGVo08or%$wk^X|t0X+BBF>PV?Y!?O36n70IF{7AuydqWr_gNQ= zfWi@nz27i4v-Z(D2`$rHhib=WOe)&HXs?)Zy*$LnotF=@WLQvY?6}=sWzu4qAL=!c z7r;&K4YYJ3aOmPm$!RVlh*GG_V>R*bSURyH!0X1?Fi4Lqr<)tBs4_o18qqaCE|Cf_ zTj?YZCJgLH5!TCfJC8{lW^R`Ekpg@eBqNM=*8pB3^wY7NE_zWej6(Qivq=W1^?sfL zX{2)^k>AYED+u6WDqG0YIkm}Suf$+~!L7)$LoM!ed|sIpBi)QDwBa6=IwGP8elC&Y z-JO|I)GW5thKr)xwv_SqGn2~M(cwKdJ%knk_ZdTCO2XA$AMPdjNd|+Cw%5U0RI{7_cM5#z(yEAZoIb@~S0 vv3>nm_Ci7I;MkPgQpu>bLu9>byc}+PWQxVfUgriS2M6}r?J3-K^3s0*#JAMH diff --git a/blazor/datagrid/template-editing.md b/blazor/datagrid/template-editing.md index 5815f4bb80..b2a934382c 100644 --- a/blazor/datagrid/template-editing.md +++ b/blazor/datagrid/template-editing.md @@ -13,9 +13,9 @@ The Syncfusion Blazor DataGrid component supports template editing, providing a > Before implementing Template Editing, it is recommended to review the [Template](https://blazor.syncfusion.com/documentation/datagrid/templates) section to understand the configuration of templates in the grid. -## Inline template +## Inline template editing -The inline template editing feature in Syncfusion DataGrid allows customization of the default inline editing behavior by enabling individuals to define their custom editors for grid rows. This is achieved by setting the [GridEditSettings.Mode](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Mode) property to **Normal** and wrapping the desired editor elements inside the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Template) property of the [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html)GridEditSettings. This feature is particularly useful when there is a need to include additional fields not present in the column model or to render highly customized editors. +The inline template editing feature in Syncfusion DataGrid allows customization of the default inline editing behavior by enabling individuals to define their custom editors for grid rows. This is achieved by setting the [GridEditSettings.Mode](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Mode) property to **Normal** and wrapping the desired editor elements inside the [Template](https://help.syncfusion.com/cr/blazor/Syncfusion.Blazor.Grids.GridEditSettings.html#Syncfusion_Blazor_Grids_GridEditSettings_Template) property of the [GridEditSettings](https://help.syncfusion.com/cr/aspnetcore-blazor/Syncfusion.Blazor.Grids.GridEditSettings.html). This feature is particularly useful when there is a need to include additional fields not present in the column model or to render highly customized editors. > Custom HTML elements or components can be used as editors, and two-way data binding (**@bind-Value**) must be implemented to ensure synchronization with the grid's data. @@ -31,7 +31,7 @@ In the following sample, grid enabled with inline template editing. @using Syncfusion.Blazor.Inputs - +