1. **************************************************************************
  2. * Version 2.x CHANGELOG *
  3. **************************************************************************
  4.  
  5. 1. - XControl renamed to BaseControl
  6. - StateManagedItem renamed to BaseItem
  7. - StateManagedItemCollection renamed to BaseItemCollection
  8.  
  9.  
  10. *2. .AutoRender functionality has changed.
  11. Need to determine if old functionality should be recreated or is no longer required?
  12. All usages of .AutoRender should checked to determine if using in proper context.
  13.  
  14. 3. Window .CloseAction "Close" has been renamed to "Destroy".
  15.  
  16. Example
  17.  
  18. // Old
  19. <ext:Window runat="server" CloseAction="Close" />
  20.  
  21. // New
  22. <ext:Window runat="server" CloseAction="Destroy" />
  23.  
  24. 4. Panel .Padding property has been renamed to .BodyPadding.
  25.  
  26. Example
  27.  
  28. // Old
  29. <ext:Window runat="server" Padding="5" />
  30.  
  31. // New
  32. <ext:Window runat="server" BodyPadding="5" />
  33.  
  34. The .Padding property is still available, although now renders as Padding around
  35. the Component, instead of padding in the Body of the Component.
  36.  
  37. All previous instance of .Padding should be renamed to .BodyPadding.
  38.  
  39. 5. Panel .Border type has been changed from a Boolean to a Int. To remove border, set to "0".
  40.  
  41. Example
  42.  
  43. // Old
  44. <ext:Panel runat="server" Border="false" />
  45.  
  46. // New
  47. <ext:Panel runat="server" Border="0" />
  48.  
  49. 6. AccordionLayout .Animate property has been renamed to .AnimatePosition.
  50.  
  51. Example
  52.  
  53. // Old
  54. <ext:AccordionLayout runat="server" Animate="false">
  55.  
  56. // New
  57. <ext:AccordionLayout runat="server" AnimatePostion="false">
  58.  
  59. 7. AfterRecordUpdatedEventArgs .NewValues has been renamed to .Values.
  60.  
  61. Example
  62.  
  63. // Old
  64. protected void Store1_RecordUpdated(object sender, AfterRecordUpdatedEventArgs e)
  65. {
  66. var company = new
  67. {
  68. Name = e.NewValues["company"],
  69. Price = e.NewValues["price"],
  70. LastChange = e.NewValues["lastChange"]
  71. };
  72. }
  73.  
  74. //New
  75. protected void Store1_RecordUpdated(object sender, AfterRecordUpdatedEventArgs e)
  76. {
  77. var company = new
  78. {
  79. Name = e.Values["company"],
  80. Price = e.Values["price"],
  81. LastChange = e.Values["lastChange"]
  82. };
  83. }
  84.  
  85. 8. GridPanel .StripeRows has been moved to GridView.
  86.  
  87. Example
  88.  
  89. //Old
  90. <ext:GridPanel runat="server" StripeRows="true">
  91.  
  92. //New
  93. <ext:GridPanel runat="server">
  94. <View>
  95. <ext:GridView runat="server" StripeRows="true" />
  96. </View>
  97. </ext:GridPanel>
  98.  
  99. 9. GridPanel .TrackMouseOver has been moved to GridView and renamed to .TrackOver
  100.  
  101. Example
  102.  
  103. //Old
  104. <ext:GridPanel runat="server" TrackMouseOver="true">
  105.  
  106. //New
  107. <ext:GridPanel runat="server">
  108. <View>
  109. <ext:GridView runat="server" TrackOver="true" />
  110. </View>
  111. </ext:GridPanel>
  112.  
  113. Note
  114.  
  115. In according to ExtJS docs the default value is false. Now it's not. So, it needs to check it in the future.
  116. Now is August'17.
  117.  
  118. 10. GridPanel .AutoExpandColumn has been removed. To achieve the same effect use .Flex of Column.
  119.  
  120. Example
  121.  
  122. //Old
  123. <ext:GridPanel runat="server" AutoExpandColumn="Company">
  124. <ColumnModel runat="server">
  125. <Columns>
  126. <ext:Column ColumnID="Company" ... />
  127. </Columns>
  128. </ColumnModel>
  129. </ext:GridPanel>
  130.  
  131. //New
  132. <ext:GridPanel runat="server">
  133. <ColumnModel runat="server">
  134. <Columns>
  135. <ext:Column Flex="1" ... />
  136. </Columns>
  137. </ColumnModel>
  138. </ext:GridPanel>
  139.  
  140. 11. RowSelectionModel .SingleSelect has been removed.
  141.  
  142. Now use the public property .Mode which is defined in AbstractSelectionModel. The possible values are Single (default), Simple and Multi.
  143.  
  144. RowSelectionModel and CheckboxSelectionModel inherit from AbstractSelectionModel.
  145.  
  146. The default value of .SingleSelect is false: so, the equivalent is Mode="Multi" which is not default and should be set up explicitly.
  147.  
  148. Example 1
  149.  
  150. //Old
  151. <ext:RowSelectionModel runat="server">
  152.  
  153. //New
  154. <ext:RowSelectionModel runat="server" Mode="Multi">
  155.  
  156. Example 2
  157.  
  158. //Old
  159. <ext:RowSelectionModel runat="server" SinlgeSelect="true">
  160.  
  161. //New
  162. <ext:RowSelectionModel runat="server" Mode="Single">
  163.  
  164. Example 3
  165.  
  166. //Old
  167. <ext:CheckboxSelectionModel runat="server" SinlgeSelect="false">
  168.  
  169. //New
  170. <ext:CheckboxSelectionModel runat="server" Mode="Multi">
  171.  
  172. 12. Column .ColumnID has been renamed to .ID
  173.  
  174. Now Column is a component and registered in ComponentMgr (http://www.sencha.com/forum/showthread.php?133562)
  175.  
  176. Example
  177.  
  178. //Old
  179. <ext:Column ColumnID="company">
  180.  
  181. //New
  182. <ext:Column ID="company" runat="server">
  183.  
  184. 13. Column .Header has been replaced with .Text
  185. The JavaScript config option .header can still work, but it's deprecated.
  186.  
  187. Example 1
  188.  
  189. //Old
  190. <ext:Column Header="Company">
  191.  
  192. //New
  193. <ext:Column Text="Company">
  194.  
  195. Example 2
  196.  
  197. //Old
  198. Column c = new Column()
  199. {
  200. Header = "Company"
  201. };
  202.  
  203. //New
  204. Column c = new Column()
  205. {
  206. Text = "Company"
  207. };
  208.  
  209. 14.1 RecordField has been renamed to ModelField and must be defined in Model.
  210.  
  211. Reader .Fields has been removed.
  212.  
  213. Example
  214.  
  215. //Old
  216. <ext:Store runat="server">
  217. <Model>
  218. <ext:JsonReader>
  219. <Fields>
  220. <ext:RecordField Name="company" />
  221. </Fields>
  222. </ext:JsonReader>
  223. </Model>
  224. </ext:Store>
  225.  
  226. //New
  227. <ext:Store runat="server">
  228. <Model>
  229. <ext:Model runat="server">
  230. <Fields>
  231. <ext:ModelField Name="company" />
  232. </Fields>
  233. </ext:Model>
  234. </Model>
  235. </ext:Store>
  236.  
  237. 14.2 Use Validations instead .AllowBlank property.
  238.  
  239. 15. HttpProxy has been removed to AjaxProxy.
  240.  
  241. Example
  242.  
  243. //Old
  244. <ext:HttpProxy Url="Some.url" />
  245.  
  246. //New
  247. <ext:AjaxProxy Url="Some.url" />
  248.  
  249. And there is no .Method
  250. Use ActionMethods
  251.  
  252. Example
  253.  
  254. //Old
  255. <ext:HttpProxy Url="some.url" Method="POST">
  256.  
  257. //New
  258. <ext:AjaxProxy Url="some.url">
  259. <ActionMethods READ="POST" />
  260. </ext:AjaxProxy>
  261.  
  262.  
  263. 16. If Store .Proxy is specified, then Reader should be specified for that Proxy.
  264.  
  265. Example
  266.  
  267. //Old
  268. <ext:Store runat="server">
  269. <Proxy>
  270. <ext:HttpProxy Url="Some.url" />
  271. </Proxy>
  272. <Reader>
  273. <ext:JsonReader Root="Data" TotalProperty="TotalRecords">
  274. <Fields>
  275. <ext:RecordField Name="Common" />
  276. </Fields>
  277. </ext:JsonReader>
  278. </Reader>
  279. </ext:Store>
  280.  
  281. //New
  282. <ext:Store runat="server">
  283. <Proxy>
  284. <ext:AjaxProxy Url="Some.url">
  285. <Reader>
  286. <ext:JsonReader Root="Data" TotalProperty="TotalRecords" />
  287. </Reader>
  288. </ext:AjaxProxy>
  289. </Proxy>
  290. <Model>
  291. <ext:Model runat="server">
  292. <Fields>
  293. <ext:ModelField Name="Company" />
  294. </Fields>
  295. </ext:Model>
  296. </Model>
  297. </ext:Store>
  298.  
  299. 17. PagingToolbar .PageSize has been removed.
  300. Store .PageSize should be used instead.
  301.  
  302. Example
  303.  
  304. //Old
  305. <ext:PagingToolbar runat="server" PageSize="10">
  306.  
  307. //New
  308. <ext:Store runat="server" PageSize="10">
  309.  
  310. 18. ColumnModel .SetHidden() has been removed.
  311.  
  312. Use Column .Hidden
  313.  
  314. Example
  315.  
  316. //Old
  317. this.GridPanel1.ColumnModel.SetHidden(2, true);
  318.  
  319. //New
  320. this.GridPanel1.ColumnModel.Columns[2].Hidden = true;
  321.  
  322. 19. ColumnModel .SetColumnWidth() has been removed.
  323.  
  324. Use Column .SetWidth()
  325.  
  326. Example
  327.  
  328. //Old
  329. this.GridPanel1.ColumnModel.SetColumnWidth(1, 100);
  330.  
  331. //New
  332. this.GridPanel1.ColumnModel.Columns[1].SetWidth(100);
  333.  
  334. 20. ColumnModel SetColumnHeader method has been removed.
  335.  
  336. Use Column Text property.
  337.  
  338. Example
  339.  
  340. //Old
  341. this.GridPanel1.ColumnModel.SetColumnHeader(0, "New label");
  342.  
  343. //New
  344. this.GridPanel1.ColumnModel.Columns[0].Text = "New label";
  345.  
  346. 21. ColumnModel SetRenderer method has been removed.
  347.  
  348. Use Column Renderer property.
  349.  
  350. Example
  351.  
  352. //Old
  353. Renderer r = new Renderer();
  354. r.Fn = "change";
  355. this.GridPanel1.ColumnModel.SetRenderer(2, r);
  356.  
  357. //New
  358. Renderer r = new Renderer();
  359. r.Fn = "change";
  360. this.GridPanel1.ColumnModel.Columns[2].Renderer = r;
  361.  
  362. 22. JavaScript: MixedCollection .itemAt() has been removed.
  363. Use .getAt().
  364.  
  365. Example
  366.  
  367. //Old
  368. Panel1.items.itemAt(0);
  369.  
  370. //New
  371. Panel1.items.getAt(0);
  372.  
  373. 23. GroupingView has been removed and replaced with Grouping feauture.
  374.  
  375. Example
  376.  
  377. //Old
  378. <ext:GridPanel runat="server">
  379. <View>
  380. <ext:GroupingView
  381. HideGroupedColumn="true"
  382. runat="server"
  383. GroupTextTpl='{text} ({[values.rs.length]} {[values.rs.length > 1 ? "Items" : "Item"]})'>
  384. </ext:GroupingView>
  385. </View>
  386. </ext:GridPanel>
  387.  
  388. //New
  389. <ext:GridPanel runat="server">
  390. <View>
  391. <ext:GridView runat="server" />
  392. </View>
  393. <Features>
  394. <ext:Grouping
  395. runat="server"
  396. HideGroupedHeader="true"
  397. GroupHeaderTpl='{text} ({[values.rows.length]} {[values.rows.length > 1 ? "Items" : "Item"]})' />
  398. </Features>
  399. </ext:GridPanel>
  400.  
  401. 24. GridView .ForceFit has been moved to GridPanel.
  402.  
  403. 25. GridView .EnableRowBody has been removed and replaced with RowBody feature.
  404.  
  405. Example
  406.  
  407. //Old
  408. <ext:GridPanel runat="server">
  409. <View>
  410. <ext:GridView
  411. runat="server"
  412. EnableRowBody="true">
  413. <GetRowClass Handler="var d = record.data;
  414. rowParams.body = 'some html';" />
  415. </ext:GridView>
  416. </View>
  417. </ext:GridPanel>
  418.  
  419. //New
  420. <ext:GridPanel runat="server">
  421. <View>
  422. <ext:GridView runat="server" />
  423. </View>
  424. <Features>
  425. <ext:RowBody runat="server">
  426. <GetAdditionalData
  427. Handler="var d = data;
  428. orig.rowBody = 'some html';" />
  429. </ext:RowBody>
  430. </Features>
  431. </ext:GridPanel>
  432.  
  433. 26. GridPanel Command and GroupCommand listeners has been moved to Column listeners
  434.  
  435. 27. Store .SortInfo has been removed.
  436. Use Store .Sorters
  437.  
  438. Example
  439.  
  440. //Old
  441. <SortInfo Field="Common" Direction="ASC" />
  442.  
  443. //New
  444. <Sorters>
  445. <ext:DataSorter Property="Common" Direction="ASC" />
  446. </Sorters>
  447.  
  448. 28. Store .SerializationMode has been removed.
  449. Use ModelField .IsComplex
  450. or
  451. Store .Data instead of .DataSource equals SerializationMode="Complex".
  452.  
  453. 29. To get Column .Editor working set up CellEditing plugin for GridPanel.
  454.  
  455. GridPanel "editing" events are moved to CellEditing.
  456.  
  457. Example
  458.  
  459. <ext:GridPanel runat="server">
  460. <Plugins>
  461. <ext:CellEditing runat="server" />
  462. </Plugins>
  463. </ext:GridPanel>
  464.  
  465. 30. Signature of ModelField .Convert has been changed.
  466. The first argument is a record, not an array of values.
  467.  
  468. 31. Store .BasePrams has been renamed to .Parameters
  469. Parameter has been renamed to StoreParameter
  470.  
  471. 32. RowSelectionModel RowSelect and RowDeselect Listener and DirectEvent has been renamed to
  472. Select and Deselect
  473.  
  474. 33. RowSelectionModel JavaScript .getSelected() has been removed.
  475. Use .getSelection().
  476.  
  477. 34. "Layout" type controls has been removed.
  478.  
  479. Use the Layout and LayoutConfig properties of a container.
  480.  
  481. 35. GridFilters plugin became a feature and should be defined in GridPanel .Features, not .Plugins.
  482.  
  483. 36. ScriptTagProxy has been renamed to JsonPProxy
  484.  
  485. 37. BufferView has been removed. Use Store .Buffered property.
  486.  
  487. 38. GridView .ScrollOffset has been moved to GridPanel.
  488.  
  489. 39. Panel .Header has been renamed to .PreventHeader.
  490.  
  491. Example
  492.  
  493. //Old
  494. <ext:Panel runat="server" Header="false">
  495.  
  496. //New
  497. <ext:Panel runat="server" PreventHeader="true">
  498.  
  499. 40. Now ExtJS doesn't override/extend standard JavaScript classes.
  500.  
  501. The createDelegate function has been renamed to bind.
  502.  
  503. Example 1
  504.  
  505. //Old
  506. String.format(string, value1, value2);
  507.  
  508. //New
  509. Ext.String.format(string, value1, value2);
  510.  
  511. Example 2
  512.  
  513. //Old
  514. var f = function () { };
  515. f.defer(10);
  516.  
  517. //New
  518. Ext.Function.defer(f, 10);
  519.  
  520. Example 3
  521.  
  522. //Old
  523. var f = function () {
  524. alert(this);
  525. };
  526. f.createDelegate('Hello!')();
  527.  
  528. //New
  529. Ext.Function.bind(f, 'Hello!')();
  530.  
  531. 41. Store .OnRefreshData has been renamed to .OnReadData
  532.  
  533. 42. LockingGridView has been removed.
  534. Use Column .Locked property.
  535.  
  536. 43. GridView .MarkDirty has been removed.
  537.  
  538. 44. RowEditor plugin has been removed.
  539. Use GridPanel RowEditing Feature.
  540.  
  541. 45. XMLReader .IDPath has been removed.
  542. Use .IDProperty
  543.  
  544. 46. ComboBox .Template has been removed. Use ComboBox ListConfig.Tpl and ListConfig.ItemTpl.
  545.  
  546. Example
  547.  
  548. //Old
  549. <ext:ComboBox runat=server>
  550. <Template runat="server">
  551. <Html>
  552.  
  553. </Html>
  554. </Template>
  555. </ext:ComboBox>
  556.  
  557. //New
  558. <ext:ComboBox runat="server">
  559. <ListConfig>
  560. <Tpl runat="server">
  561. <Html>
  562.  
  563. </Html>
  564. </Tpl>
  565. <ItemTpl runat="server">
  566. <Html>
  567.  
  568. </Html>
  569. </ItemTpl>
  570. </ListConfig>
  571. </ext:ComboBox>
  572.  
  573. 47. ComboBox .LoadingText has been removed. Use ComboBox ListConfig.LoadingText.
  574.  
  575. Example
  576.  
  577. //Old
  578. <ext:ComboBox runat=server LoadingText="Searching..." />
  579.  
  580. //New
  581. <ext:ComboBox runat="server">
  582. <ListConfig LoadingText="Searching..." />
  583. </ext:ComboBox>
  584.  
  585. 48. ComboBox .ItemSelector has been removed. Use ComboBox ListConfig.ItemSelector.
  586.  
  587. Example
  588.  
  589. //Old
  590. <ext:ComboBox runat=server ItemSelector="div.my-item" />
  591.  
  592. //New
  593. <ext:ComboBox runat="server">
  594. <ListConfig ItemSelector="div.my-item" />
  595. </ext:ComboBox>
  596.  
  597. 49. ComboBox Select listener. An array of records is passed to a listener, not a single record.
  598.  
  599. 50. ComboBox server .SelectedItem is used only when ComboBox is configured with ReadOnly="true".
  600. In any other cases use .SelectedItems.
  601.  
  602. 51. Store server .UpdateRecordField() has been removed.
  603.  
  604. Example
  605.  
  606. //Old
  607. Store1.UpdateRecordField(0, "company", (object)"New Company");
  608.  
  609. //New
  610. Store1.GetAt(0).Set("company", (object)"New Company");
  611.  
  612. 52. ComboBox client .triggers collection has been removed. Use .getTrigger(index).
  613.  
  614. Example
  615.  
  616. //Old
  617. ComboBox1.triggers[0]
  618.  
  619. //New
  620. ComboBox.getTrigger(0)
  621.  
  622. 53. CompositeField hasb been removed and replaced with FieldContainer.
  623. Note that default Layout of FieldContainer is "autocontainer", not "hbox".
  624.  
  625. Example
  626.  
  627. //Old
  628. <ext:CompositeField runat="server">
  629. <Items>
  630. <ext:TextField runat="server" Flex="1" />
  631. <ext:TextField runat="server" Flex="1" />
  632. </Items>
  633. </ext:CompositeField>
  634.  
  635. //New
  636. <ext:FieldContainer runat="server" Layout="HBoxLayout">
  637. <Items>
  638. <ext:TextField runat="server" Flex="1" />
  639. <ext:TextField runat="server" Flex="1" />
  640. </Items>
  641. </ext:FieldContainer>
  642.  
  643. 54. Menu ItemClick has been renamed to Click.
  644.  
  645. 55. DropDownField .ComponentAlign has been renamed to PickerAlign.
  646.  
  647. 56. DropDownField new property .MatchFieldWidth has true value by default.
  648. So, .Width of a Component is ignored.
  649. To avoid it set up MatchFieldWidth="false".
  650.  
  651. 57. TreeNode class has been renamed to Node, .Nodes renamed to .Children.
  652. Node has client .data property instead of .attributes one.
  653.  
  654. 58. TreePanel DefaultSelectionModel and MultiSelectionModel has been renamed to TreeSelectionModel.
  655. Use .Mode to set up selection mode.
  656.  
  657. 59. FieldUploadField FileSelected event has been removed. Use Change.
  658.  
  659. 60. Form fields .DataIndex has been renamed to .Name.
  660.  
  661. 61. PagingToolbar .PageIndex has been removed. Use Store .LoadPage(index) or set up a respective "start" parameter.
  662.  
  663. 62. MultiSelect .Legend has been removed. Wrap MultiSelect in FieldSet of use ListTitle.
  664.  
  665. 63. Use NumberField instead of SpinnerField.
  666.  
  667. 64. Container .LabelAlign, .LabelPad, .LabelSeparator, .LabelStyle, .LabelWidth has been removed.
  668. Use the same properties of container items.
  669.  
  670. Note that you can set these properties for all items using Container Defaults or FormPanel FieldDefaults.
  671.  
  672. 65. ColorPalette has been renamed to ColorPicker.
  673.  
  674. 66. ComboBox Mode has need renamed to QueryMode.
  675.  
  676. 67. BottomTitle has been removed. Use Panel HeaderPosition.
  677.  
  678. 68. DataView OverClass has been renamed to OverCls.
  679. To set up over class for items, use OverItemCls.
  680.  
  681. 69. MenuTextItem has been removed. You can use, for example, Label or DisplayField.
  682.  
  683. 70. Element .AddClass(), .RemoveClass(), .ToogleClass() has been renamed to, respectively,
  684. .AddCls(), .RemoveCls(), .ToogleCls(). Their client side pairs as well.
  685.  
  686. 71. Panel AutoLoad has been removed. Use Loader.
  687.  
  688. 71.1. Use DisableCaching instead of NoCache.
  689. 71.2. Use RendererType insted of Mode.
  690. 71.3. Default RendererType is Iframe.
  691. 71.4. Use RendererType="Html" instead of Mode="Merge".
  692. 71.5. Use LoadMask.ShowMask instead of ShowMask.
  693. 71.6. Use LoadMask.Msg instead of MaskMsg.
  694. 71.7. Use Loader BeforeLoad and Load events instead of Panel BeforeUpdate and Update.
  695.  
  696. 72. TabPanel ResizeTabs has been renamed to Resizable.
  697.  
  698. 73. CenterLayout has been removed. Please us a combination of HBoxLayout and VBoxLayout.
  699.  
  700. 74. ToolbarReorderer plugin has been renamed to BoxReorderer.
  701.  
  702. 75. FormLayout has been removed. Use AnchorLayout.
  703.  
  704. 76. TreeNode has been renamed to Node. Node has no client side getUI method.
  705. To get a node's HTML element, use the view's getNode method.
  706.  
  707. Example
  708.  
  709. //New
  710. tree.getView().getNode(node)
  711.  
  712. 77. TreeNode has been renamed to Node. Its Draggable property has be renamed to AllowDrag.
  713.  
  714. 78. TreeNode has been renamed to Node. Leaf nodes requires Leaf="true" to be set up.
  715.  
  716. 79. Tool Qtip has been renamed to Tooltip.
  717.  
  718. 80. TreePanel client side initChildren method has been removed. Use the setRootNode method.
  719.  
  720. 81. TreePanel EnableDD has been removed. Set up TreeViewDragDrop plugin for TreePanel View.
  721.  
  722. 82. TreePanel ContainerScroll has been removed.
  723.  
  724. 83. AsyncNode class has been removed. Use Node with NodeType="async".
  725.  
  726. 84. TreeNode has been renamed to Node. Its cliet side ensureVisible method has been removed.
  727. Use TreePanel View focusRow method.
  728.  
  729. Example
  730.  
  731. //New
  732. TreePanel.getView().focusRow(node)
  733.  
  734. 85. ModelField Convert. Now the first argument is a record instance, not just an array.
  735.  
  736. 86. BottomTitle plugin has been removed. Use Panel HeaderPosition="Bottom".
  737.  
  738. 87. BoxComponentBase AutoWidth has been removed.
  739.  
  740. 88. PanelBase KeyMap has been removed. Though we are planning to implement it in one of next releases.
  741.  
  742. 89. Calendaer: Event and EventCollection classes has been renamed to EventModel and EventModelCollection.
  743.  
  744. 90. ResourceManager Namespace is "App" by default. Any widget will share own client id in that namespace.
  745.  
  746. Example (client side)
  747.  
  748. //Old
  749. TextField1.setValue("Hello World!");
  750.  
  751. //New
  752. App.TextField1.setValue("Hello World!");
  753.  
  754. or
  755.  
  756. //New
  757. #{TextField1}.setValue("Hello World!");
  758.  
  759. You can set up an empty Namespace to get the same as it's in Ext.NET v1.
  760.  
  761. Example
  762.  
  763. <ext:ResourceManager runat="server" Namespace="" />
  764.  
  765. 91. There is no ViewState on page by default, i.e. ResourceManager DisableViewState="true" by default.
  766.  
  767. To get it back, set .DisableViewState="false" for ResourceManager.
  768.  
  769. 92. ColumnLayout doesn't support FitHeight and Split options.
  770.  
  771. Please use HBox layout if you need this functionality.
  772.  
  773. 93. The type of TextFieldBase Validator has been changed to JFunction (was string).
  774.  
  775. Example
  776.  
  777. //Old
  778. <ext:TextField runat="server" Validator="myValidator">
  779.  
  780. //New
  781. <ext:TextField runat="server">
  782. <Validator Fn="myValidator" />
  783. </ext:TextField>
  784.  
  785. 94. GridPanel Reload method doesn't reload its Store, don't use it.
  786.  
  787. Use Store Reload method.