From 314b8a6f726d60c85b77f1a383443dd862b8ced7 Mon Sep 17 00:00:00 2001 From: Vlada Skorokhodova Date: Tue, 28 Nov 2023 16:33:15 +0400 Subject: [PATCH 1/5] Update README --- README.md | 26 +++++++++++-------------- data-grid-validate-unchanged-cells.png | Bin 0 -> 20288 bytes 2 files changed, 11 insertions(+), 15 deletions(-) create mode 100644 data-grid-validate-unchanged-cells.png diff --git a/README.md b/README.md index 95ae7d8..de05fa7 100644 --- a/README.md +++ b/README.md @@ -3,17 +3,19 @@ [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/T1202789) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) -# DevExtreme Examples Template +# DataGrid for DevExtreme - How to Validate Unchanged Cells -This is the repository template for creating new examples. +This example demonstrates how to validate unchanged cells in the DataGrid component on button click. To implement this functionality, define the `validateVisibleRows` function: -Use **_Product_ for DevExtreme - _Task_** template for a title. +1. To trigger DataGrid [changes](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/editing/changes/), map an array of all [visible rows](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#getVisibleRows) into change objects and assign it to the changes property. -Describe the solved task in this section. +2. [Repaint](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#repaint) DataGrid. -Put a screenshot/gif that illustrates the result here. +3. Use **private** `getController` method to validate unchanged cells. -Then, add implementation details (steps, code snippets, and other technical information in a free form), or add a link to an existing document with implementation details. +![DataGrid with validated unchanged cells](/data-grid-validate-unchanged-cells.png) + +If you want to validate unchanged cells after DataGrid is loaded, you can call the `validateVisibleRows` function in the [onContentReady](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#onContentReady) event handler. ## Files to Review @@ -31,12 +33,6 @@ Then, add implementation details (steps, code snippets, and other technical info ## Documentation -- link -- link -- ... - -## More Examples - -- link -- link -- ... +- [editing.changes](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/editing/changes/) +- [getVisibleRows()](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#getVisibleRows) +- [onContentReady](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#onContentReady) \ No newline at end of file diff --git a/data-grid-validate-unchanged-cells.png b/data-grid-validate-unchanged-cells.png new file mode 100644 index 0000000000000000000000000000000000000000..b512ff0a090f28bbeca63fc9252f6001e19549c2 GIT binary patch literal 20288 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 bS9bSk51X_bVdCY%P$3IbYiyOVOU(ZO@{}xi literal 0 HcmV?d00001 From 0f7d18162295174cf624c2be142a47b2d3fdba8e Mon Sep 17 00:00:00 2001 From: DevExpressExampleBot Date: Tue, 28 Nov 2023 16:37:06 +0400 Subject: [PATCH 2/5] README auto update [skip ci] --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index de05fa7..7e697c9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ -![](https://img.shields.io/endpoint?url=https://codecentral.devexpress.com/api/v1/VersionRange/723096689/23.1.3%2B) [![](https://img.shields.io/badge/Open_in_DevExpress_Support_Center-FF7200?style=flat-square&logo=DevExpress&logoColor=white)](https://supportcenter.devexpress.com/ticket/details/T1202789) [![](https://img.shields.io/badge/📖_How_to_use_DevExpress_Examples-e9f6fc?style=flat-square)](https://docs.devexpress.com/GeneralInformation/403183) @@ -35,4 +34,4 @@ If you want to validate unchanged cells after DataGrid is loaded, you can call t - [editing.changes](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/editing/changes/) - [getVisibleRows()](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#getVisibleRows) -- [onContentReady](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#onContentReady) \ No newline at end of file +- [onContentReady](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#onContentReady) From a82476fad2bde19d737938d8f3b23ded308015c2 Mon Sep 17 00:00:00 2001 From: Vlada Skorohodova <94827090+vladaskorohodova@users.noreply.github.com> Date: Wed, 29 Nov 2023 11:24:30 +0400 Subject: [PATCH 3/5] Apply suggestions from code review Co-authored-by: Abadzhev --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7e697c9..0a89562 100644 --- a/README.md +++ b/README.md @@ -6,11 +6,11 @@ This example demonstrates how to validate unchanged cells in the DataGrid component on button click. To implement this functionality, define the `validateVisibleRows` function: -1. To trigger DataGrid [changes](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/editing/changes/), map an array of all [visible rows](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#getVisibleRows) into change objects and assign it to the changes property. +1. Specify rows that need validation. To validate all rows, obtain [visible rows](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#getVisibleRows) and create an array of corresponding change objects. Assign the array to the [changes](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/editing/changes/) property. -2. [Repaint](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#repaint) DataGrid. +2. [Repaint](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#repaint) the DataGrid. -3. Use **private** `getController` method to validate unchanged cells. +3. Use the **private** `getController` method to run validation. ![DataGrid with validated unchanged cells](/data-grid-validate-unchanged-cells.png) From d866dfb39ee10d4ddbaab86272af1512d69d8d4a Mon Sep 17 00:00:00 2001 From: Vlada Skorokhodova Date: Wed, 29 Nov 2023 11:25:38 +0400 Subject: [PATCH 4/5] Update image --- data-grid-validate-unchanged-cells.png | Bin 20288 -> 20338 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/data-grid-validate-unchanged-cells.png b/data-grid-validate-unchanged-cells.png index b512ff0a090f28bbeca63fc9252f6001e19549c2..0e260010bf684a92c304a015b738df47078cdb7e 100644 GIT binary patch literal 20338 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 literal 20288 zcmb@ubyQnlyDmz-Kyho);vR~-w76SwcZUXd+TvbZg0#3(+zKfgoZ?Q326qo~7Qb)r zaqr&ujBo65&-o)`C2QK6bH4IC?|Ns#Rg|PL(1_7cP*5;rWhB&4P#!O$pgdxE`53tK z%_TJmxS)QL(Q!dR!F7H3JX*4(@C0tYaFtb*e1SkGMaOxGTqJcuL3xWJEAjrLXU5*5 zpT4?Qmgu1qxfiAk3Tqg*tzBIz2X_pnYFQMSZe|4M-i&+1F6Q-ICI{zlC#%A}oBE%~ zz> zUJ{1M1DChjZ~tB4OFz))^z`)jxET+Gos;FzQ>aRtl#Gn*&6_uywJ0c0>)P5xa!0K> z(ku(k*N!|XDJgNoyR5EAYf)?14uo|wGc%t&d9u8`3={~FJ4N84)+7yCa;7N^GUAYs zkZi62T@()w54X3sr>3SJ9v-F@3p?=4|NbrJ;o+gJotkpYZ;iL{mld?Nv$M0mZ}`*r z5f!d+&8)qFfdM-^yEXSCl-H44Rx%0-8CP@TmNj+t_1?CVm~%l@UL;0iHnZULU}1AmCH^?NB6dlJ{A@k9?ni2?FhwqXb~wtXz3y&(>sxmwh{B~ z8+Oes>E=h^0jU%E@X5)^i&{fNLm>)u4Mxu#I%a-#)AB$tqG|sU#v;tjaZ!H%BAA&Q zmw%YKS*J?}u(H@J*eSq8?5CLigCMm(2BQL(r|4a@|L?-XTYpmEcPi*fYwO+6a{^of zT0#XE)7OMl9)cVm7wHT%Oj1JSg3=FtV82YBN}mom+CHef6qL2N>@Qm}B63j7n3BNR z`gp&9T!S;@D_EOuP1;QyXp)uLyo)MOXHguQ$*iH5XN*h_;X}RU1IBvvM^Eo4{{B5G z4u-xeR84hU(2ucthfn`-HDKyBi+NiGXfg9D5XvaH^-3=bTq`CjM$HZbx18 z$U_B2n@MjdryNi?3bhcuk@UXyzfaC=a6QN?gr1uCd`|#mP2##BA@|-O?KT#90j&wR z7qzTBts0YEJhM?E#KGCZBD&#&{*@MG(lFx2i{pFW#0<5D3qDl6uhVj8#OsofSmbsR zL4HVck9d-wwh8lM6wWl{Ki{ZlcjBFDO}HEH9BDJSz-yw=v$;RaFN8P3M}i9_5uwnT zs~-A=ktwL}?)1DLwBC!!qj`B9-r6L*bUPM}96xbX@Q6o2F}CgQYpZfJc&w^tM>?7$ zRv7Z*UP4?#qPi@=_hh}C1Mw&MY$wZegI3%?=dQGb`HA;rEIMwi=Dx0g1u`@IJbq|r z>%-pFFnczyEhe6Di&w~M)H#+>x&oyAguso3U|?w`E$eP9yh_v&&3(~pCI9p^)2g0y zb@%8Bofn#Ay#g#zk9hNHw~)Ka%B4{2AurTR_KlK6Gw=OK+*I-WszMhne6IS72*1lx zort55OW5Ys5Tm~%tv?dt_Q;+E%(mX$+}x1edU!qT;i}$hvnVKNRG1Q=g%}%7JkDtd z{B~?=Kt>Gcw{gVl7-&}%_Z#_NzS9Hu^0E@HO}jFkiF;tWmG~Jq2=AX@&TMBA0#_?w z9;K(eEU1RZ2qQz~P;Pa>+We!;Z1SbUe&(!eJD@AftJ<8yU?OKj&mTWm#>MC@SZ+7p z%~atwSRJ6zQ=P=2tGj!MP>-O(oJPFvqJPbuWX@+a97m^j*50in*4G4rI>y7I*;nNS zlz-KpoS_fi^Zrt+N~>{Q72NU)B?}NXQoS%m^N}XXQVIyP?%XUQ+AmnZ2tJ}a*VE(q zvtvbUq#*m|qGAy=_|#!U^HN6Yq1~zbqNSqu5+$^v^9X!|dswDCRT`dQynvFQQZ61aayns7ZW(nIZWM_G7&PFuzs)uFN-EklrGU-b; z_nHOhzWyVNCx*@UGmv@HhWlnmA7m(-u%9KT-6n&T`W{8w>FIEaweJtv-4$fG(S`&)rDD0*aWM|fD#kNjY3o^Dzi_zlZ?=2fjrOKXgfODfN= zU!deLnY#qu%qMheSpgQE%X4~}i7Tui>-(SEe?n3ME)qun(z+unnH{T%$xRztukc_U z3U))~np7STd!P=sF!Fq}V5I?i+@F?NNnyKio)CWaF4}B*Ri_ag@UQ{*v#bJ$l=WX# zJ(e}IPyuB3;dFZcjc~wB3-Secs4_diKVUHdeb=b64|zMl>(S;|Gn+Ah>{>m#F~CPb zp`$7-D*1Eqw=aaF+i>z#p5@o%o@g8SwC`^q2iz7XCu^JiCUZ~Px`~C_D?GyYFSHZz za8wb6R-iKY4Vu-i<=bO9!inVr@2^KM;B+v;h{ky*~oTwO{q43v0GHO?@0 zwan(8W#ZRn(&x9^EplUj`3HLE7Z7moRC))WD?MEh#HxWtD;mnVx@16~p`iRu(DcK@ z!J&n9D~=LcIg)#8YGIb*!Px6puOgb86Guh;>`Tt3p5+V~5*p`ZU{ubugc4sAA{GyS z6)S^w6#@d0N0$PE0?=m39bQh8Q5`TB%6N}58B_D*>G6lERsd4H4U3q-B~-e zf0d*h5GsET2(K6KNO7Hn#IchQ*Up^0wgG>nP9`59KX=#90tz)rl05I9AM4L1>}UQG zU!tRMS)8~YN`Qowo%rqrW9S)%lOZZvSx8$PPo8_PM(xuxuKI%JEUCYUy~TbRGSoT1 zVD8KO1O?@CWUK_lHjaa1v76r9a6Y&ubjk?HE<~?Gh)$5Y*Mg!(z1q&dj$m|y+Td;< z631bSJT9^+MFAT!L|#~lW66vA+V^@)Oq zt9)1H<%ByA4EEY$>-IGB>zDv1PM?1@B0QCG{xGVIf?o29#qYR>By@9jF?SE|=mM@h z+$Rbch<$<47QF{c6tEm!NH*z?2z6>(er2_<*PjK-2aE2!*GH1;BosF~Mikw4dfa3{ zlZfH6R$1$B$Y=yB415gu*1OHvDn&C80;2XiiUBcLI5?TV8h)-C`PW+AUkyYLDJp7h zId@0iuOBo6E^%LHFoe!+Yk!ca^i+aIiES=rb*Efpl|As5ugi6vRAeyCM`WEI>T@+U z?zI&f7RK|-d3T1n5=m$G>^ARqkS97sc2j+~ZgwZ!d9!xH=ICd6nF3{L^l;9fG3-N}^}PzZo{N=i{Yx zxxd&lkZfYkit@RXgxB#>Lug4T9ythEh0wbV$sbV6(4G*y@Ra)uMLm(xD(I~fEhBB? z*l~(PZ>WqSR#sV2er#Fa`qWZCk%ozj%k^jlsjGKjSajcOy}NjQIerHNK+-#dfyQE=ruGYM0ilkA|N;`D7m<&5Vj zL22kAp`ivMSNcfl4bj39xYgYW#N%SfIvo&@9xQO*u6uR!dGIa~g}3MGj?)dgpg_|> zTkv224K5PjSC5h?-Uj9jfSlPXLtQ9b=fhWy5kD zPMi!&oW$)m#r?jAG*e1{@>2mxU<|xapym8+2WP@TrOPPaqz~J1+SnnXl2oHnG#J1f7O+zWy@Q_xBpo02-`{%NZ;o_0 zIFKD3jcq9bi2rw&XQaHRkW}Fl$Zom>o9+0gfl1* z5z3%Afb#*s|78vdKzJFMu=&cbJSO%_EAg9~n_s>>;z}Dtvs2T&U1USQ+lB?$ah-eX zZY;uYrb|M}wHx+H5*AX1EJc3h&;NzK zW;W`Nxh7wM$W_4o75t9MN^2^Ho+iF1=6rY{T2cBQ89?s+X?97NjYa!iu@okG zEInalZf-74A_|Hpz@MzRh!yF^2Pd)sDndgeK^1q&k{!rna=wn^Fen@tC=M+b@VyDN z&8^~9B8F63PI4*-@SepbiWQ;*`}X2L7{j}O{~dw&x9sBI7Gir}?e|2Ja3*5{!k2oI z%&NEH_s9txF1jQBtr5KXoWo92OlgR)w|Mq3KX>Hi_|lhusLKD0IR0B!`Tr^Wtdpl> zp!&lR&6NoSr64-?0u@=jTDIM5LA~=twx4r$3st>(@9k(=MUev-*^)j%Q0QYda*yZ$k>{FO&c)U(&Q- z_e%Mel^F^-{$49!C(rT5iDzhd9P{m8fo)K|$}yq)6^|Bkag&J}SoY*a9jhv%@?iFS zjoB+t&RNBacM64J9xGCqlAVvVGAcJG6%89X+Gpje%7Le zHbX?rLK$E4>_goagX=)ZBtc!Polt#RrMK+O(En9S2ha=qg z0zD~Rlf^MS#NlDYu^+i`Wz{&67b?JH-eX`*w>9UFhK5tMg`^86nU)oZ*B7tMji`sV zBXqr4lx+^}48jqmD89>>7RE$;9y73CfRN00Fs&PVmwCTysz0wT@Jf)6g}D4QSRIX! zLhv7ekaIowQM*jfwT2SYCG^K!>w;+*4Qq@~1qNL<;G+>BcMOlh`mgnC>lU-haki6t zhPuZJhMJGn)u&2^dupn$&if)N>dyOr=I;NEn?vKCja;-G8lsJ12MtktoFLbL3CgW4 z^-vSY4m!?24C;i6&rkOXc%1Qv$gJ3|i=Z|dQ)XJsO4B6}&8D5R!}O@%Hf>8ER2lsj z*=X{t5cw`Gs)E}h4)(v66iUgUxjHVh3_2%WuCzpr`qh=|uHAjyEyu?zy=SCm{j+(j zUb70C+yN@8dOvKfo>62?TU1Pqy3GTk61i7qMLaV;PQE z>b810YVMQ_Y5wQPzKDp(j7Cb3pNHXf>Jcq@wUd3jOi-z%w*tbY!@-S+pZ5iR1EY^T zN1c9|*;yjJLzPi7c*`!KXj&$wEhOl)4z#%4TD$f}nv5c)%|{-$PQNzx{52VU`%RUI za-PL|$`c4uVQ%rBUZW!wS!q;F>ZOjv ztmK^RU!5(>`uhjw;}v=aq)BJj!V$Y9Pqc%za1J?&!s zrXrs>apJb!TzC0Qbz*E$iK`i{a3ri*APje*>@@}T4?%-H2{3+xcX8g)@ua10T}0Si zy5ohM8iyaetxPxD`ABKCyN0ZEp{F}5p53S1|J|1B-X1eqBDVD4p3iae_s#6|8eLmv zCfmJx55E;^8~&Zjpi71vL-7}?qzP;b<0=2lbhY0Buu6Dkbies*@Kv3BNXkD*`K)ev zk?udaQr#n~jd){x*Ofjm4Jw(O_+aP0OqDKMn$@q@UHeI2L~V4h6*(w=-o*0HCR2gJ z_1^vy7%m_yyi^L6DF?Wra(Odw+!J~ z8C+SX)xMfic5KRbn#}4Tabm-Z`PQ|1cpN_cFyn^1XSH38@$9X@ zgL{+Wts)3D*}^%N+Q#%fswAtW-nhmQ&FFPkIM>WTDb>j;CW%&M?4LA;s=FrkI=IoZ#nO{&-x>qz`fFxK`Dmy;%6Z#ucfgJV zu=T^d5Z4K^vLZg~dsaaE2nb5HKtD8v>zHXv@~14M0S_AJW(ND*)Uvdq$(Hom$?(@= zBu?dfCdY9+Mpf22g5k}Yt3c}L)|embhU{j)W2>pA>jlnOGC#cgxk4z@>xqoG{lgvb zI}5q6l$T!TUF%uq?sC@t(N0tAlVe}%PKQ5HIyOajKU?K2Z-H@_2B$Ec;6Asby8BXr zrCWDg#6X#Hu9`b7Hcq)W6Wbl&|5c^$=hrsuW8`M*>UU%$gKw2JV^L2~viypS0pD$< zrW9jl3}aePkCXhB?^a6E2!SB{##Rf! zj9B#Q?djB4yKCE0jWK_n8B1{th_DkClx9bLZ!Y_dzBXb1B_mz(rmt)(18P2HJ*7_$ z3!C@Nx@f_W>Jy%!uMWeKrPasS^+3o-K}_@k;QjZ&^S_0L|E-YX057XA59s9gLdXRw zz+`@xEwA44iL4U8#N~Bd5VIUY`xi>ods}FU6L4+f+eIrJaOoL=`()hyDnhIf-~CBq z#D50E_@an|GRW<){aEr#GwYwe)D&N61J=gVKmpO3+N`tpx~gto$y~-;ZzwvCz7FE* zQ<9eqV2TzPAkTxsz7P=Yf04xUNSmFu{yw$+5J=(@ZPnbo5)D zLMIj@BqU~E)CL!qLFXr)&C5w&YFY>8Jt`x0iF*-^beVuVa8PGt0wGI zKT`k9pJ1i2#ft?{SLFjIxm^Dl z|4D5KQ=RU{{c|^e%ZjfH&#<4n$zx=7WY@vov7q)}-Z>6b53T4>f9K~Qy&N-FL3xM$Cm?6>>vSa(?G4&%4XHv0*h zV(`j-C{*#*eAXAo^Z6T}uzbT%r&7wgW?!Ue@Uxt5mH*s-??~OfIol?UuQQlfFyro=~&&G_Z?kR>-FV@xsHz43wpf+Oitl z0!WYJ4_0KnBRyZ5&0+8vQGa=f;PZElm9twTQ1= zJCjrvep~IMn6N@v0$DAlAEvTM6}Nl@&>CGeu@iK) z)5O!&5u{{AA*;{Og6*C}2|how%TLb`&Sn4dKC@D#k!M?hqO(aoeRp9cic4|mnd{wi zHh{UkFHo$cw-`k&KbMG$M@DmL47Z6Uf#Pts&Kv^=o~8{B6#`qpgcP&jxe&kQRs$(I zLkJ(%LwD5iDXn8&W@)jOrTtHY?0_OheqRPGF7p`%H&g$xF`1NC^J>rUPy2~dO>ViI zR(L#?d2uC52>r1)e$BQ`#Xkr*E~052yoDJp!X2R}$y<(n>iieaWaX1SRyvu`Qx~e0 zPHJv=F3Qa}rF&b%)l}t48Yu&Et6M(6&o4}jnLK4>l_$sRs8Jor^pYn`euJ^oK{!sK zhph4Y>uzG%5@vOVe&QK;Ow2Pobs`4*G+N>kwjuKXB?$}*H2UEgc7vu5sugBa>${Ph z=}C2;+UAUv_0o(kqRLn~cZNj(!KpQz-@9F|P~sqEW6TFXdt+9jV9c&xG@55&Pddby zQj(tetXY77-kdT=A}yZlTC<>pZWdSRH>2KrS4AgLA9c>^MIOIrcwTK&*&xbApZr~F zDH^tkVSV+C3MEPYH_lXBA+I#m332$PnmG1&_d~`wEz(Zh*w*QmYx?Ab$#KkT71&nh z1VyB=F}rZ(&-c4_eaxQQHl@uc(6FnU8!h>$RiUywNt9_!IIT&fzQyDCTQ#ZF)4|o{ zMKw2VngvG1MVLa4ZHcvSk}05add0h+{YE4|rt=q8nj2(B@a6wHfmA!>f7BmDb)1`^ zrTuuiJ@e%y>$Ue-qInFV|L$cauu0XlY6eZn4=!1DO?{|yd4lKW2~5+5SWT|l-|R}C z7rr0h{;Htc@5m@0pC5NuKaV&29V+!PX-C9E_l$Tf(a}Zky?38$!0X}6v3G7ae6_{! z@|@iTv1rNh$&ae;%^AH8HsTT=PjpdROD1jWD#X2|LnG|c3@1VYx%Eo-o@LZ?w6t+0 z_}TBsa}sdB$+al1X7Z?I;VwGil-HV(*Vzlt8O0OxIQ$sm;u73 zgP9^-pRQL^RLVc$31(y?HIe(E39eF8cmCs5y#7%D^zq7t{5gn^H=jjd`PX8~{tRqi zj-D!KR}S_zd}2}Z{PBloaB2Lw;i5`z&aQA)w#4hs?-d{8PCS}i4@bBG#ca}$Q_5Jj zXZF@|@5s03E;1s)E1u~?ufv>_v?gAf2sKT`7L*f@>=j*zdceT zS*N+6Rpu-urY2>po$;Ws)FgC5Lop(+e33i`{T43k}dt$h=Dd^1W7; zj_$#0+0{yv3smRkv7SU82?^r4?fu7Z-c9K}velg)&-AGnz_bD-AUk7+@xtO>lLz$ZX(#WyKC#*V@WkOI6$XB!1mY@Ef zLb(#zaelPc8(mk7Y|uJhU=WqUL+5>0;)IL@H^_}Yewb>*%j$4VQJAjsF@c?uZT8~> zUQly#r}FnXDhDs?@UcWQrP=On5@gp}gQ)Q-Z7yka7+@Wg?#UWZ%+K~|`^IGIraKvz zH<3%4B_;xwscxA=tS2wC@UjZmt|ld?IppEv7V86gj!;WzH)vU`ertBltVLTz2I*gf*nc2GQNi5@4;GD%ClO*o+V2TOw-u-YRK zR_Q!z3bTQ5IoYf@ai*z;cXC?wTKOy$mUZ}qM47}xk5@?5sC@J$tmWIJ;Bs9hgLJ-R zw5%FxNo~Qsiu-&WrxR61)tm+*8>5EO>GbSZ(w*&N-WH>!j|6~xjmZhTNd!})@+%vr z$(Bs0#qMhp#Vtb&z#zB;;vzHH`Ogar9vrg#jcgECsXjBa)|#VwVm1Bes*#u99N?s! zHW)P>F@AHj77?v!5%D@as}nSUrZnVLk1qA+<;%%I()nfLlbQPJz&@m@(pbZF77o8u za%GvB$h8ujauj6yqwo^Q*@*{xRN47#)AL-Cn5dZC!e`_-2xv3Nd3l8<&9lf+(gHGG zgoblAc4`3@eT=d7%bH_Hux4vW;+t?stm^jx(JtSB1rIwP>^eC5nnvj$q@MNjjpL4R zRB$?K2s(E<`;TAC57_4-Tp>}C{(Q3mT(V#gR{W4c=h2I%sqaw=db?0JkuXbaKLE77Y>$ikrSeWD=adDoDBb z>ONldxr3JrZ1W6bKSjz2Q(1uPrf$_mcb9vPU+r@doIAlze76?Xqjtj=+=+>YGpj|r z1nZ|iyQxO;_c|bKw++&ZZ-h1sLvwj1ih8d;a;A*1Z=AR5;i1btUJ745|0(0K+jnkY z+KZkRS57Ydhh#X@nREObR&nrTMXs6@ug8y`#f`OK`ixbj4WTaDlf(+4nhADdYBvwn zbQf$s992m3AXG_lT8yUdkA-y}WI4^Sp#fZ~rXH`SD_Vh5`RYN#Z@02WGfM{$V<&vg z#3QksuVaXQQg{=?dL@($NhYqE9wu|szk5A~3;UjZya2|O${L7It}bjhR)XSAr5UMh zzhuL$K41H0d$38{b6OT{h<}WTNE{9v6zc6HPF8A8XHuqCb+ss?f6qt69k=Y6=E5Kj zX*RBmART$(HRQ_MgSkXZ#5?j~JCyg!KP@*3E%1SZW3TV2(zscV8yb6Og5r zZOzS`<@SC~?ckV0gj%%+TJK5Sq&zxDX6y4+pUenX@sN0~^dph4y=8U>F&4K`PyFwq zbi})_-Q4+;=6suga(~E&<;!mgP?1e}4uTlW;|w_mek(EAANAD=?9IPDc?1!%yygr# zWRK3rV_h~5Tu9}-+Uny;Q(iZ`7!rZsY`%B5NwzLhRdvrVG<*_E#Er8xo9O{^!aYpi zau4Fh!NEB(;%}NqppnhMG`qn!$mEzN#3ld^3$v=374q{~?ZMbOvm1>K zu%g3ziudOvG!|n(3*dGvKu!_-lg<#@oq_rTs21PSpbiuY*TE+sb179KN{3| zZ3L8n&*?=A#Q~e!#3O?Co459VkWuvCxZ8hAHxh>1jZlbWeQ`w@WNs`&L0LG)N%>n| zSQEV56D>yn=z*tcKJYYbPtoCpFM5ZwCjam^l((LMQBwazO}>UL_!z}A6kG|=!T(u` z)4zS7|5_Mn6Cv+vfhO4w?mV@B$cx%2knN^@K-^ju&BbzawYCpf(*i^NC#}beA7YC< z&-Aj?06+I(`J7%5Q}TiCsU*hs{SM*SXRCJVXEcg_>Ds^5KdY5cF$k`OnSZNTI0=WX z6%RyUSnQ8Hy_hF${W&|p%a^d~j9fO8q!4sw73L!%x(HSF>}Es+C{?L*Z~XkJ>8h^+ zkVYe3PqP7v;bTW-6su}jocgYUN6kAQY0&JlpQNUDL7v$87f9+GKH-J2q}-X){*BqQ zo#|FzyP8>ni7UJ5Hn+YZ-jpTX79OL;Wk0t{P-~t0o?f=H>64{J!DLa%c@GzCkpR2B zxjMT5cY6+Kz^@7;=+Z5?4sjqDb8G)_e{qdyN2PJ#PmGzUi={=VKtQ?Ou%Wk|Wx!V1 z6i{(wpx@F=iBeih-}|8(WGYl3<~GX3)?f~CQzM=Ub$7U{^2vpRm7LF|^y?3L^8Lz! zn;LzF-zK ztE%4aJT*h4*yVQ@`{*;1E1iSg*^?1+c7wrv7~megdGMzLLIDwImr^!j%o3N`n>&f0 zd!w=GdE%~a1k&Xfh1v+XFO_8@i#4I2F@*uKlrO()+CFcPE$_M3Xq3L+*u~8fD0V~- zYHysjp@JKf<&~tr-I?s4dHCib?7`XRLBz~W`$9UwK}D-1vAbnmLZZ34mB|7O*6fJN za}}`@)Kae;oOx?;_rSQgbmCX%pQhQLLLXdaZB+CyX`JK2Hs6jbw?<+n$itC`n;OE! zP4p^;mb-A+%UYIavog-vCLZEMZ2K`Uk+xbycBq$5Lou+D;I{qRMuJ8$Nq#oqUtCdn z5w(&})*pe-JyFCUNIlt9A|wpiwi~X)iCbP^jCS6UvP%DdD4>h%n6tV#v-wz+Q7ynA z>1T1Lcu`3>$4KdauQ^BLRTGp!ao3#PtG>NWz}a$Y5pHT^R*P)Qs>ZUeo9o{Vr|YH& zS*6WCn@zfMhDUzDPAzT>T10NnRrZios#J_8G2=(*6U5n8*4&SL`Xv@u$urZix+(2p zkkSHs>_*Z;k~F!)@9v9Q2nV|&Gq7O1u2RjE;#(}0;o||MjjDWOWZjZB>0{GE?hbN* zQ>L42Q6O>yFxB<0uwb6V`Pa$2fK(;WsMMGm?c|OgsZqn$*?I2+)3wW7D+`1@$4;b? zryf#7Cg+iGB%XVN(L9TSdit)$ErGPYBf&x$t-_Tc7Kua#^>``xHt4f4(}A5gl6_sm zKVhBk5uH_sN%TO(@rUyIca!sI>g_Bd9t>DWJ%h9ls#EWDr=v8*ch}Kl zb^vv#Y+RLZtb5&)IjEvPrcyAY$t3t4;6}O*Za7Jn0$8m;TXGAjRo`|4cs}y)7tq7B+8M_WS}wcG?8X z>zlPLmCp_RM#D$T5m6^vHBQ8H6VD>_{lI6N1s|Ipp)2O;R1z}o$jb|179<>iEcf$f zqiOfiG*ii0dHFp?6!KE-*hXJ%Ps?%h`;eAvR=A1hC~Vz`)2(tjHZ837n=7<#f>8e< zlg*4@$?A&5A%+Jd5p7%j^-1xF=ll;0G+I2t2wdHhq+U@@oWVmr{hi6CIQ}+;Wk`L^ z>W>k1Nxxg`52}V}LV%MF-_xh7=P{44(D4($7^A;(H zfK=C+v=>NK0-Mz&`IBZ*Ml=9ionjT8#c}+BP0`^j@u5YB<|nQOGjlTb2?7;sxnkh)IT# zO4oYX!CygTE2jAcd0pyGF|M#I0G|b}m-XPL^8W`zR2VE*VMrBQkanppvz#z^gy`!1~v zj)W1$$~}eQ0-|F3;6isy8_lMZFs%)1xd#69FKHsP3eu%ND{c&K&7C9M^zQe^Y#o|H z#pen@pY{&VoVwH2_O~dV@?HN?6uI&mv~LJ4qI?@UxXYABI)P6HhN#1~M=5~LNeAR> z`h`6{0=#qB5J080J5-s4bQCG(TDCephM^BwIZ1M)O2p&&F@PsmT+6P1x80MB`zcl2 zR}gOiXTzM-g|DnV;+9OVf%H`onF)XW8(+mT%{T6PX|u+&ayxJP+^eUoLqSopt&ZJ zz2%$CO=*{Xn?f*dhvp#~-J~&TPB84(0?9maKCUDeO$Buk>)2rLB}{2PF3;erb{!ou)akok(0R*!S* zUA(D=41@bE9zkt`ZK#0YW%(RLFS&x%RV!3Br8g{$Z1O)SCBxx`zzI6%LgSojjhqKQ zQD#4jpK?l4w#51J<1!(eNxLwqC(l~jqP3skVqDwd3GR?~lI^a_u3zaoh%g7A(G0lx z82;2$V4biqKj+VaCd< zGs{N~nl65bq+-HSp1aX9HZ<==Sy)vqcxdj;XemBRqkZ8fm=UT4M7+wW+&gQsnUw@# znV(7!W2K4*O^N3_9VS}l2O+Eu0 zN|$bL^8s`IQFmO00jtD_U7CMDg}183bybr#bBsi09~Xojw_NXEtD{;#L(oufH#%KY zN*j1bJUS*@SocFpayCibMf1~>?>uhp^=cS}*&h8`87!hM{fgS~lId?8)T0jNeIJ8{ zj~G~axg~t)AetLnKeP%rzVS(E58#C{Qp)cn-6eioAg~G%q7HRd&g9%Z^cA7;WX`{} z)5-Y8p8N8%rRjp*SA`8| zaX>O;-tw;(>GZOe#B(?PaVy4$@VQRX05NMRbIm>6%3$Ad(IKB0fuaY^C)E7MMEQKh zfDKGIoCoYJ2)S*=Rp_@1Eq1M_XrURNe1Pp*5t@Lqai{up)V7Oi)jVpluQ!y&j74{(l*`%2M;`FX#V5Ij z;(-iA$@|Rg0e^`FuWgQ4t)GR#hs`V602$b|I&0D+nTLx$V^%5$uO-TB!&Q37qX){l z(_VPZtfy8K^s7JJVt5z63v1_3jWzh%6mw5zr35he&%$FdO$P!ho4(qyw`*~5=HZN> zGQWRfvmj;5*N%eZbSIi}@_<(6gUNGTg-;CL5pD2HtqN5pHM3dbnR7T#xeoF_NjQM1 zt~)ocEl3QFks)j4`|-;vT6Ukzv1|l91h%U=o^ghB-VxNOX*#-ZE$K@VsK$hv?3qnz z5Ng@cpWcKC8R@mwz8zWmpeh|T;H605}Km9B-glzCOLqOJD*<-3e3YYwhgshPvp<$@zG## z8_7vsC7~b0^YCo-;-M5}Pf51$w9iLt_JP=%H10TvNK-;vD_!Q zUTfuv$(BiW7VBt;G|>%D=UFxdO?NG#)?}S+OIfewaH>{6d}_wX($YxzcWpuc$-kp5 z29k%&ZH+q|7aA#B{aLS%4xS27{#69%EDwv(@=i4e5Q4U=*Yxo|cVim-4YCv#Mf;t` z7uD=62~zY^;Z7M0DM8c9$P`Tr_S$^(HJXc=7jnk)+2+sZKAVEBQv^OIUXRO5IZJ*~ zg!>aJfR|%Or55HF*r@$|$Vt~gxxPf?*$fr)xP6%}wx`tI>gUVdrxQ2_x24}9f*u*) zG`a*SFv8WtfAcArDa|4nKkLxTN;RdGnRw!nBl$%CIfIq@0oX)|M7+@dADMJl@*9a+ zqQ0b?GypGFAYF-Xdcw8`A$Y~>_*4LRb=p1vLk3xKFam||8m@e^e>VJc+RK>EWPusD z_kZ&G_rHb^{wrhu&*Mx%UzC2odb7p#3f^K>qx&Qi8yFMr>Dy+#{K2G*>kn$0jf*H~ zi~kHfLQxW0VT9%S0jSVJ?|OB-3FFLd@CVLjrSStV%?UTT6o^V~Huv@JCkk(YhCu3T zYNJedv*i5_;^x~QF?w^l!Sy5Ba;F=#_rSCV-Tmg2_28Ep-__a0H|+JtuI`o}E#`|A z0_UZS(OzwW+}Z;8{uHO8x^RK2bOl9KUI^d-BdZsjJmDS+Eacs=)E~RQvYPtx5H7QJTynz*}gg4h?E@cy;nRaYu4Lqm;Sw!~o~f$d{86E*#>CL^_K_CApx)c- zyx32NUibSVreu_3C(Y>wUJflzV*v}Nz~4o?^fD*s!@d#m^`DZTNm$_t30F8cLL%9o zzAHzbzCJ{$Z#m*A$U$;4-;Hfx^6W*c_mCrCVChL$*8wEL)3 z)Z*p?9h#z~=YN=%J0!n`y)=}08N1c^rt^qDHjExWI3y$-H=#pIROnLj#CSYg@tP#L zt?iA1AdoR&AKchQpiG0?O&?UQOVGA~Q>8!`mBew&eOCd(KJ4hcT3-HI#PHs}?6R%v z%RtI=2qbiV-oCSQJjEW!s^&)lqrMR3`siw8+Lde9xgHyqvcMJ=l`&Y*6)yW&w$`}) z@%zEAcOxLofJIxfbfo&(!}MRT;L>MlvlwQOHu;OMg>d}v(nXHe;;{>D=pU|&WJ&Iv{}!77Y8b=4CPWPNg*ItLul{QYd>2Yr?d zezmVxkdQ`3Z7KyvjI>ivBn2*$k}fHwGKNl@uiW#80Nfz^i7;px_32|-S72GhlUa!* zB)#+|EKf>12C#67t2RF^Z*(S?DeZS zW5|$YmG(8VTwL6|&U-#%(w2<4`t-~T)%2-q+;VJQNWb~bpPzmCWI*eRvbw0d(qa|97(|a7zOo`t;rWdo*US4kOn~p*>AFT|0L32ExA#--5DzK3eD=X~%z`A{QFcgiY4vWI4r3)vb z7c}fZgiKnJ5EHk#z^10H_V@OXdC!Qgf@ ztR;k^Zv%#Ve#ebdM|R1(nl`>Vha<|uveCCk9TIa?!RM!!yzdR7JCXe&VM_M8@#5fq zu9SagD`+JIc z*yNQCEX>&o84O@yL~1uE;b;HG3%93BxZ0Uo8n3&}HXz;NI+URL!3Ek~#y3%jf_(~w z;mOdfbmjfnd>yb7k3Yu&A#1Q`S*WauE60wCLRhK2~+LwA(L}H^`O6cF}F+ORf5nFyl|;zf%3q>t_wc; zq0@XIVB2G72&454mv~Kt@OuNOo}5C&?Hwmisl(qfL~>RZj<_^pw6hB#S%EBgYuSFd zSm~qWKjC9&M)vwI>eHOY%P^;k*sFca_Yy%DSF=H2ux}-0T&J;%dXOoZC} z{5n}J_2(bUs#jb**EM82V$eG1h-Dn6hwEj{FQS#Mt{Dm;5=!Mgz3zL7} z!=L$;BV&ugebFtcGs&ImQ-@uq!12U}`-_38_I5@%prZ<*USugRsi=e5*+qy}kFIip zf~(-jwzphe+8#XueAZ;d+t;@Tz4nBxhC+u|Rz2f&Jdwd+K}V=@HvP|Z1aG~jq+SEL ze?E_1fQ*Q@xWe!fK2UgmzV({v#6qW{Vv$-E0|G1IO?78eY*j>G2*jV?CMva-NXd3m4_ zSLA^_KC6E3DO30>)8NSXr_}2UggdNs(Ey%i)}9(T??F-2BBH`cElxHd5#Y1) z+hP&$R;C{QaMRr;BpWgnzsG)_{AA5twc|sUm~oAE$id>C+I<@$wlGZQdI2jfxJB6? z|D-FS<5?9?soUmU%EdX<>~1?oKAjAmQ!nQ3d@6NMIXr=o6GCQxT{G}j-SQM9$`TdU zG2Kfc3vli2Gm^E(msgF6dED8tk~I<|2WJTjGageWjLd!m{QrRC&<-L9 z012Y5q5*(Gut$gp03BOVG^ zUdXJ11T`5MP#Ai!NoYpe|&GACqXtN6+gR$*Bx<@A^nz$>Kr*T zBPA6wKkw=5KNHBjTI2GokYBEe(ec74godr^bu`cwtMHScjoL)ssD{kyP{MV!%`Yyy_ceN2CuqOD;vmjSJtKYvo`v&>^0Zeq{7 zgpTswQgw_?3*NZdZK~;PM!fKK1fb}zRQMjP@7+_nKm=-V$IQ%fG9d@Q$O>RtWoT-3 zSniTEk-t; z>Lqn?q`&UlsBl!hx{|%$P%Iu^)@z+F?=yDmIGEQx$E^(96N#)+6zwTuzGrTUmvg{ zar^r%P6s576Th+0BW3(1EYj{G=k6kPH{uM&%OMJOa+kzjh1c2_p%m{NWFr03*}PZ+ zXEPhbYtIDZB7h*M2YmkC{T`8xGui>Y2A{5`;S|He?#@@^Vwu8VJNLUQ(-!yUWTa90 z4I;~x{w$}0Q%_MoS8cfIo07b#!i2z%DnuYdz#b@{N&5v{2MJTQI+*93cpS`!(a$!j zGDM%$^mPf?yNe#Bzj!jF7}p=&0sQ?#BL4f2iJr?;^S!-*PKWh+ZnzHCAJ9S1nN@wi z0yveP5D#ZW>lveAb&%(;cDA<7Vtz>pz zK81RkZf#dbN4+#N#r3b9_G~U_xz1fWA%9z*`0YqrAOH8Od!e;K|#PhHamMiD@mn$TJyNCU~F_PT+qtZ+vBhqlBQ(V{Plq!@L#FIe%zlnnF8uhBvcnjj~(Oc zmUik*o=ve`DjXgbHbPJClvguuu@IhLnL>{ra~ln~8QBv7P!;AY-D~gQs;WB{p@{|a zGQn~9VOl;kHVi=Ws#}om|5eGEheO@9aa^TEn$b*UO15{%NFMtV4I_q#NV+l_3}arp zvWwRm5>j?5YfWUyauE|V1|yLrCR>&%(o0z$F*F!vEbp1;`Sa6He`Fa%ZQTd+9dnuEe{W*mPL4#|$v?@cHk7a=R0qB7l&j4D1cgHHhH8__ zl;!mtWYd?0_i`5TCic}>#SzmY!`l>ASUKi)1=$>G z7GVJ2a_rfPH#m{msCo#M%FXAE^(X<=@k;BAjr>xhA7gEoaSiz z;;WopqqY^lle5nwz@X5;J#xI{Ib*qHM92s8oY{cbh zoQHt?685n!C^$#J@p-~982IDi!Mq|&)jH*B<+Mm#o7Cd{sCCc!6VyV@ zdb29Luax9Zp3#K!nv9&mL{r*Pa^|#1vABo~Mol6)H6=s`Uz-r(w7bNX~y`U{+4rc$v%O|SB?b(F-Q#|KA8Ih}TfD18nR zNTLj8Dui0cie~}~tES&U)XH7eZK~GxbI=`Roh4msoZ1tKEs{l#lP7}g$w#tE&g>0=-P@eJ1YiUp6aK`) z`HmpfKFVt#OaDakcFa9cHp=2C1&1&`-FhqaWlre=?K9BSw>3l%%14!P{ozZM#ht8r zkWPN`zHJB|SA?tHY@cp490~N@{St4ot2h2tB_ZL6LoINOP^abq>Q8c*p`qSaa<9%- zP+~FFzUh{2*S6*U^mL#UzC__!-0uD4a}rP)ji|K~HnPW23dw;Iyf;z5Jc2>GXkbsXwAqTUwvIg+y!y_Dfi!ks*KqN8IyGT>{V9VUlxP)G=k={)^W zMe2cA5KoI~3PZFzs!qDs8%6Kx< zopO`;#~%iz<>5A?@Kgk4`)s!xUa}_fT*Yt%+h?|5_owehghn#>hFW#|&Nmj#gDe)P zR5IGM)L8?CbUZ5zbM*3&5MGw8m-P_Pf(!A)1kndMeF$jb4H>h2L?l&n&I_fb+Y;$ z+mfDWX&c4E4)ys6xY8jpj)sAVV7pMFZsNEH2TVl~p}92zIuMo&?$)Hh;Lv#tKwjAo zW`Z4!NsDY5-mh|tYOapn!PL%Uhm4;puQX@_Y1YTOT4{1$p*eD{r($GhM@0T4KnKvg z(P`(0UG5q{+Z`}$IZsqe@?0MlS@IFA-^q=w!iM7a@gBN>YtUxG!$n}M-V#P4!t|lV zR==99@w+!mo<)>9uU7&l-zVy5#t0yseS&2dm>a$EfP^8!taI7KSa@Jy=#3mW*7H3T z`ygaIy-{)~7CaffZwihSD2x6zPY~Pi#J^-RvLpflrq^0QSS5UdI<@HRlM=Mf67akW zi38{R$4MX`?sWwoW)sweOTRj$>aN5ssIceltd_RUDA=&Ofq4>YKVuE}!F~FH+N3n5 zcHW$INkw1GfN}`gX1D?GMYDaITj-=P?S@3Avb$ zn*l3RB-_fzvz_5#-U>s0rL9}TQbTJCB@3fgguDNqpRa+)DS|I9LxA_McjcI0YOJdc z-uP-TwB}h@RFwApObo8f2noYtm)qn*{zZI#6^pG;cg^eelA5Ega`8!KmZhzMv+I7A zJoz zB_73+DeT!>E+_89?CJgd$9c&fnuTI7QBR6fnMgSRnZY9m9mI?!{p~ zih^7#0MF6=3;x(^rW-Yz-Ds^46O*R zii7e!YcSbp8R5O4H3tlMJ`f@=GBsY#nEuV1-{nhzzXL&_LVpXMf4>a>sJaI)_`izz bS9bSk51X_bVdCY%P$3IbYiyOVOU(ZO@{}xi From 88d4e67ec782bde1cc41355755ab8229e45a8600 Mon Sep 17 00:00:00 2001 From: Vlada Skorohodova <94827090+vladaskorohodova@users.noreply.github.com> Date: Thu, 30 Nov 2023 11:05:37 +0400 Subject: [PATCH 5/5] Apply suggestions from code review Co-authored-by: DirkPieterse --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 0a89562..3e99775 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ # DataGrid for DevExtreme - How to Validate Unchanged Cells -This example demonstrates how to validate unchanged cells in the DataGrid component on button click. To implement this functionality, define the `validateVisibleRows` function: +This example demonstrates how to validate unchanged cells in the DataGrid component with a button click. To implement this functionality, define the `validateVisibleRows` function: 1. Specify rows that need validation. To validate all rows, obtain [visible rows](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Methods/#getVisibleRows) and create an array of corresponding change objects. Assign the array to the [changes](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/editing/changes/) property. @@ -14,7 +14,7 @@ This example demonstrates how to validate unchanged cells in the DataGrid compon ![DataGrid with validated unchanged cells](/data-grid-validate-unchanged-cells.png) -If you want to validate unchanged cells after DataGrid is loaded, you can call the `validateVisibleRows` function in the [onContentReady](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#onContentReady) event handler. +If you want to validate unchanged cells after DataGrid is loaded, call the `validateVisibleRows` function in the [onContentReady](https://js.devexpress.com/Documentation/ApiReference/UI_Components/dxDataGrid/Configuration/#onContentReady) event handler. ## Files to Review