This example demonstrates how to declare cell tooltips by using the CellToolTipBinding and/or CellToolTipTemplate properties available starting with version 17.1.
How to declare cell tooltips
How to create a custom GridControl that represents columns horizontally in a way similar to the WinForms VerticalGrid control
This example demonstrates how to create a GridControl descendant with horizontally oriented columns.
To use it, simply add the VerticalGridControl.xaml and VerticalGridControl.xaml.cs files in your project.
In addition, this example demonstrates how to customize grid cells using data templates.
Question Comments
Added By: Prashant Patel 7 at: 5/8/2013 11:44:19 PM
How can we View Stackpanel as fullscreen mode in wpf window ?
Added By: AKN at: 12/12/2013 12:01:51 PMHi, is there any way of showing TotalSummary in this control?
Added By: Chris Schiefer at: 7/18/2014 7:44:04 AMWhen I updated to v2014 vol 1.5, the event for CustomUnboundColumnData is never fired and the cells never present any data. It looks like the grid is displaying the correct number of rows and columns, but the data isn't populated.
Added By: Michael Ch (DevExpress Support) at: 7/18/2014 11:41:47 AMHello,
To process your recent post more efficiently, we copied it to a separate ticket created on your behalf: T131266: The E4630 example doesn't work correctly after updating to v2014 vol 1.5.
This ticket is currently in our processing queue. We will post to it as soon as we have any updates.
Hello,
I've created a separate ticket on your behalf (T411462: How to show row labels). It has been placed in our processing queue and will be answered shortly.
However, there is a problem with the LightGray theme - when Office2016White is changed to LightGray, the row headers are not seen.
How might this be fixed?
Thanks.
Added By: Edgar Duee at: 5/21/2017 9:04:34 PM A further problem I have, when setting the ItemsSource to a DataTable, is that the data is not editable. I can change a cell value, but as soon as the cell is deselected, the original value is shown. I put the example grid in a tab item, and created another tab with a completely normal GridControl, with its ItemsSource set to the same DataTable, and it does not have this behaviour i.e. the underlying dt is not imposing restrictions. [I am also looking at the PropertyGrid with Dictionary example as an alternative.]
Thanks for any assistance
Added By: Ilya (DevExpress Support) at: 5/22/2017 5:48:11 AM
Hi,
I've extracted your inquiries into the following threads.
1. How to implement support for the LightGray theme in E4630.
2. How to implement support for DataTable in E4630.
Let's continue our discussion there.
Regards
How to access a tab control in a Detail View layout
Scenario
This example demonstrates how to implement a View Controller that will access layout controls and customize them as required. In particular, the second tab in the tab control should become active when opening the detail form.
Steps to implement
1. This functionality is implemented in the WinCustomizeTabControlViewController and WebCustomizeTabControlViewController classes that are added into the WinForms and ASP.NET module projects respectively (copy these classes into the respective projects of your test solution). Take special note that on the Web we are activating a required tab on the client side instead of using the server-side ASPxTabControlBase > ActiveTabIndex property, which is not appropriate for updating tab control on external callbacks (learn more...).
2. To identify the layout element by the "TabbedGroup" string, make sure this identifier is specified under the Views | YourBusinessObject_DetailView | Layout node in the Model Editor invoked for the YourSolutionName.Module/Model.DesignedDiffs.xafml file.
See also:
eXpressApp Framework > Concepts > UI Construction > View Items Layout
How to show the number of the nested list view's items in the tab caption (Web)
How to set active tab in a Web DetailView layout after executing an Action
Question Comments
Added By: Wieland Voß at: 4/26/2016 11:30:50 PM Hi all.
Do you have a hint for me, how to determine the index of the active tab?
And moreover, how to determine the index of a particular tab (i. e. by name)?
I want to switch to the "totals" tab, only if the "particulars" tab is the active one.
Best regards,
Wieland
Added By: Dennis (DevExpress Support) at: 4/26/2016 11:37:37 PM
@Wieland: I've created a separate ticket on your behalf (T372263: how to determine the index of the active tab?). It has been placed in our processing queue and will be answered shortly. Please specify your target platform in that new ticket as well (WinForms/Web).
How to convert the CriteriaOperator to a lambda expression, so, the latter expression can be used in the IQueryable source
Imagine, that an end-user can build a filter criteria, e.g. by using the FilterControl, and you wish to apply this filter criteria to your IQueryable source.
The static DevExpress.Data.Linq.Helpers.CriteriaToQueryableExtender class allows you to add extended methods for the IQueryable source, such as AppendWhere method, for example. This method provides a capability to create a new IQueryable source, based upon the existing one, and add an additional Where condition to it. So, you can convert the CriteriaOperator to the corresponding lambda expression without any problem.
To extend the IQueryable source, it is sufficient to add the DevExpress.Data.Linq.Helpers namespace.
Please note that the DevExpress.Data.Linq.Helpers.CriteriaToQueryableExtender is an inner class, and we cannot guarantee that it will not be changed in the future.
How to create a Popup Menu and associate it with a control/form
How to create TileBarControl with items and groups
This example demonstrates how to use TileBar Control.
How to change the Grid's height according to the total height of its rows
The size of each GridView's element is calculated by the GridViewInfo class. The instance of the GridViewInfo class, containing information about a specific GridView instance, can be obtained via the GridView.GetViewInfo method. This method is hidden for IntelliSence, but is public and can be called from external code.
Question Comments
Added By: Gerard Chartier at: 6/16/2014 4:40:32 AM
I am having problems with this approach. When I set gridControl1.Size to the newly calculated value, it has no effect. Is there a property of the GridControl that could prevent it from being resized? My GridControl is within a LayoutControl, along with a number of LayoutControlItems and their controls. I am using version 13.2.9.
Added By: Uriah (DevExpress Support) at: 6/16/2014 5:29:40 AM Hello Gerard,I have created a new ticket on your behalf and passed it to our team for research: Setting the GridControl.Size property to a value has no effect if the GridControl is inside the LaoutControl Please bear with us. We will get back to you as soon as possible.Added By: Jerther at: 12/10/2015 6:57:31 AM
Is this still the best and only way, now with 15.1?
Added By: Uriah (DevExpress Support) at: 12/11/2015 5:31:57 AM Hello Jerther,Yes, this is the best way. We have not yet added another method or property that can be used for the same purpose.Added By: Justin Tysco at: 9/1/2016 2:38:23 PM CalcRealViewHeight does not seem to calculate the height correctly if I assign a memo edit to one of the columns and have word wrapping & auto height enabled (causing some rows to be taller than others).
Is there any way to calculate the correct height for such a scenario?
Added By: Nadezhda (DevExpress Support) at: 9/1/2016 11:17:14 PM
Hello,
I've created a separate ticket on your behalf (How to change the GridControl height based on the height of all rows when MemoEdit is used). It has been placed in our processing queue and will be answered shortly.
You are adding HScrollSize to height? And V
ScrollSize to width ??? It is a joke?
How to show the Context Menu in a group footer and set a group summary in a column
This example illustrates how to show the context menu in a group footer and set a group summary in a column.
To implement a custom Context Menu in a group footer, it is necessary to use ASPxPopupMenu and fill its items like in the Context Menu of a grid’s footer.
For this, get the clicked column's index and applied summaries to show the menu's checked items. Then, get item visibility of the Context Menu in the grid's footer and apply it to the custom Context Menu items.
To show the Context Menu in ASPxGridView, enable ASPxGridView's ContextMenu setting.
To get the clicked column's index and applied summaries, handle ASPxGridView’s PreRender and BeforeGetCallBackResult events, build and send a custom class name to the client side by using the GridViewDataColumn.GroupFooterCellStyle.CssClass property. This property includes a custom class name that contains an index and applied summaries of the clicked column. Handle ASPxGridView's client-side ContextMenu event to get the CssClass name by using htmlEvent’s target.classname property. After the custom class name is obtained, show a popup menu under the mouse pointer.
After that, handle ASPxClientPopupMenu's client-side PopUp event. Set the visibility and a checked state of menu items.
To set a checked state of a menu item, use applied summaries that were obtained earlier.
To set the visibility of menu items like in the menu of the grid’s footer, do the following:
- Use the private ASPxClientGridView.GetFooterContextMenu method to get footer menu item information;
- Iterate through all menu items;
- Use the private ASPxClientGridView.GetItemServerState method to get a footer menu item's visibility and apply it to a custom menu item of the group footer.
Handle ASPxClientPopupMenu's client-side ItemClick event and send an ASPxGridView callback with a column’s field name where the menu is shown and a clicked item name as parameters. Handle ASPxGridView's CustomCallBack event, parse these parameters there and apply the summaries.
Note: The private ASPxClientGridView.GetFooterContextMenu and ASPxClientGridView.GetItemServerState methods are used internally. Thus, they can be deleted or modified at any time without notification. It is necessary to check an application where this approach is used on every update of DevExpress controls until the functionality to create summary in the group footer is implemented out of the box.
Question Comments
Added By: Xavier AYRAL at: 2/2/2018 7:16:58 AM Hello,
In the last version 17.2.5 it's seem that
ASPxGridView1.GetItemServerState
doesn't work. Could you tell me how can i fix this problème.
Regards
How to show an alert window and make it opaque
This example displays an alert window and demonstrates how to respond to clicking the alert window's content. The shown alert window is made opaque in the BeforeFormShow event handler.
ASPxImageSlider - How to add different CSS slide effects
Question Comments
Added By: Elvis Montezuma at: 2/2/2018 12:01:48 PM It does not work in my app.
Is there some special setup to achieve these effects?
is missing some code behind?
How to display detail data within a popup window
This example contains a Customers grid with a hyperlink column. When a hyperlink is clicked, a popup window is opened to display detail data - orders - of a given customer. Orders is a separate web page, which is embedded into the ASPxPopupControl via the client-side SetContentUrl method.
See Also:
How to show ASPxPopupControl by clicking the ASPxHyperLink in the GridViewDataColumns' DataItemTemplate
How to show detail information in a separate ASPxGridView
How to display master-detail tables in two grids on separate tabs of a PageControl
How to show the ASPxPopupControl
How to display detail data within a popup window using ContentUrl (MVC)
How to display detail data within a popup window (MVC)
E5202: How to display detail data within a popup window using ASPxPopupControl content elements
Question Comments
Added By: Jijo V M at: 7/16/2013 11:10:42 PM
Hi,
I implemented what you described here. But unfortunately I'm gettingthe following error.
Microsoft JScript runtime error: The value of the property 'ShowDetailPopup' is null or undefined, not a Function object.
DevExpress version 12.2..11.
ErrorError occurred during example running. Please try again later.
We apologize for any inconvenience caused.
How To: Implement a custom security operation that can be permitted at the type level
In the XAF Security System, the following operations can be permitted for a specific type by default: Read, Write, Create, Delete and Navigate. In this topic, an implementation of the additional Export operation is shown. The customization of the ExportController which should consider whether or not the Export operation is allowed for the currently displayed object type is also demonstrated.
The complete description is available in the online documentation.
Question Comments
Added By: Konstantin B (DevExpress) at: 1/29/2013 2:16:25 AM
The help topic will be published online after the 12.2.6 version is released.
Added By: Kalem Yazılım at: 2/5/2018 1:06:07 AM Hello XAF Team,I implemented this example in my Project and need additional information about New Item Row,
When I create a new record via New Action , opened DetailView's BO type is CustomTypePermission object and ExportState property is visible and assignable.
When I create a new record via New Item Row, created object type is PermissionPolicyTypePermissionObject and upcasted ExportState property is visible but not assignable.
How can I manage New Item Row created BO type?
Thanks for your interest.
How to remove items from the popup menu
This example shows how to hide the popup menu for the bookmark tree and remove specific items from the page content popup menu.
To customize items of the PDF Viewer's popup menu, handle the PdfViewer.PopupMenuShowing event. This event fires every time an end-user opens a popup menu in the PDF Viewer.
Each popup menu type has a unique set of bar items that are located in the bar item link collection. To access a bar item link collection, check the popup menu type using the PdfPopupMenuShowingEventArgs.PopupMenuKind property and use the PdfPopupMenuShowingEventArgs.ItemLinks property.
To hide a popup menu, clear all items from the bar item link collection.
To remove an item from the popup menu, find the item by the caption in the bar item link collection and then remove it.
How to obtain a collection of available WMS layers in the RensponseCapabilities event handler
This example demonstrates how to obtain a collection of layers supported by the Web Map Service.
OBSOLETE - How to: Use Custom Logon Parameters
This example is now obsolete. The functionality demonstrated here is a part of the Security Demo located here: C:\Users\Public\Documents\DevExpress Demos 14.2\Components\eXpressApp Framework\SecurityDemo\CS. The complete description is still available in the How to: Use Custom Logon Parameters topic.
Question Comments
Added By: Alex Kads at: 3/18/2014 5:08:21 PM
How to create many employees for many companies?
Added By: Konstantin B (DevExpress) at: 3/18/2014 9:46:36 PMAs far as I can see, this example already demonstrates multiple companies and employees which can be used to logon. These objects are created in the Updater.cs file. If my comment isn't helpful, please submit a new support ticket and describe your scenario in grater detail.
Added By: Terence Pillay at: 2/18/2016 12:37:09 AM Hi i am trying to implement this but, it keeps giving me null exception onthe object space i have implemented everything in this tutorial
Please help
[Browsable(false)] [CollectionOperationSet(AllowAdd = false)] public XPCollection<Company> AvailableCompanies { get { if (availableCompanies == null) { availableCompanies = ObjectSpace.GetObjects<Company>() as XPCollection<Company>; } return availableCompanies; } }Added By: Konstantin B (DevExpress) at: 2/19/2016 5:00:27 AM
Hello Terence,
Unfortunately, I cannot reproduce a NullReferenceException with this example. Possibly, your code differs from the project attached here. A similar error may occur if the XafApplication.CreateCustomLogonWindowObjectSpace event subscription is missing (see Provide an Object Space for the Logon Window). It will be better if you create a separate ticket, attach your project there, and describe steps leading to an exception. We will be happy to help you.
How to show additional information over the Map
How to use the Web Report Designer in JavaScript with Angular2
The example consists of two parts:
1. A server (backend) project in the ASP.NET MVC implementation, where cross-domain requests are enabled (Access-Control-Allow-Origin) and custom report storage is implemented.
2. An Angular client application (frontend) that includes necessary styles, scripts, and HTML-templates.
To download all the required client resources for deploying the control, navigate to the client part's root folder, open the console, and run the following command:
npm install
To enable the example proper operation, first run the backend project in Visual Studio and then run the client part using the command below:
npm startOpen your browser on http://localhost:4200/ to see the result.
For a step-by-step tutorial, refer to the following document: Report Designer Integration in Angular2.
See also:
How to use the Web Document Viewer in JavaScript with Angular2
Question Comments
Added By: Luiz Bilhalva at: 2/5/2018 12:20:04 PM Hi,
There is a example using Agular (frontEnd) and Asp.net core (WebApi BackEnd) instead of Asp.Net MVC 4.0?
thanks.
How to speed up Windows Forms applications, running in a Remote Desktop Services (formerly known as Terminal Services) environment
To achieve this goal, you can disable visual styles, skins, animations, and set various controls options. Note that here we additionally disable visual effects of two most "expensive" controls: RibbonControl and BarManager, which provide bars, docking functionality, context menus, alert windows and a Ribbon interface for your .NET WinForms applications. The attached example shows how to do this by an example of an XAF Windows Forms application. If you do not use XAF, then you can obtain the necessary code from this example, and put it in the entry point of your application (usually it's the Main method).
IMPORTANT NOTE
1. You can greatly reduce memory consumption if you use the BarManager instead of RibbonControl on your forms. For example, an XAF Windows Forms application with BarManager consumes half as much memory than the same application using the RibbonControl. In XAF you can switch between the standard bars and ribbon menu using the FormStyle property of the Options node in the Model Editor.
2. To avoid painting problems when using the RibbonForm and RibbonControl on Vista or Windows 7 with the Aero theme enabled, don't set the System.Windows.Forms.Application.VisualStyleState property to VisualStyleState.NoneEnabled. Alternatively, you can set the RibbonForm.AllowFormGlass property to false. This is because we use the VisualStyleRenderer to draw text on transparent headers.
See Also:
Add a new static property to the XtraAnimator class which will allow a developer to disable animation in all DevExpress controls
Performance Tuning CPU Use for 16 and 32-bit Windows Applications
Build Your Skills: How to optimize apps to run in Terminal Services
Tuning applications for the Terminal Services
Performance Tuning Guidelines for Windows Server 2008
Question Comments
Added By: Carlitos at: 3/9/2015 10:19:37 PM
I am trying this code in my windows client but can't get it to work. In the ResolveTemplate method the formTemplate is always null because the IFrameTemplate template is DevExpress.ExpressApp.Win.Templates.Bars.MainFormV2
Added By: Dennis (DevExpress Support) at: 3/10/2015 5:49:28 AM@Carlos: Starting with v14.2, new templates for the main and detail forms are used in XAF. So, you should check for the RibbonForm type instead of the XtraFormTemplateBase one from within the ResolveTemplate method when customizing the ribbon template. I have attached the updated code below. We'll consider updating this example accordingly in the future.
Added By: Carlitos at: 3/10/2015 11:22:35 AM[C#]usingDevExpress.ExpressApp;usingDevExpress.ExpressApp.Templates;usingDevExpress.ExpressApp.Win.Controls;usingDevExpress.LookAndFeel;usingDevExpress.Skins;usingDevExpress.XtraBars;usingDevExpress.XtraBars.Controls;usingDevExpress.XtraBars.Ribbon;namespaceDisableVisualStylesModule.Win{publicclassDisableVisualStylesWindowController:WindowController{publicDisableVisualStylesWindowController(){TargetWindowType=WindowType.Main;}protectedoverridevoidOnActivated(){base.OnActivated();DisableVisualStyles();}protectedoverridevoidOnDeactivated(){base.OnDeactivated();Application.CustomizeTemplate-=Application_CustomizeTemplate;}privatevoidApplication_CustomizeTemplate(objectsender,CustomizeTemplateEventArgse){ResolveTemplate(e.Template);}protectedvirtualvoidDisableVisualStyles(){if(System.Windows.Forms.SystemInformation.TerminalServerSession){Application.CustomizeTemplate+=Application_CustomizeTemplate;InitGlobalOptions();}}protectedvirtualvoidInitGlobalOptions(){Animator.AllowFadeAnimation=false;SkinManager.DisableFormSkins();SkinManager.DisableMdiFormSkins();BarAndDockingController.Default.PropertiesBar.MenuAnimationType=AnimationType.None;BarAndDockingController.Default.PropertiesBar.SubmenuHasShadow=false;BarAndDockingController.Default.PropertiesBar.AllowLinkLighting=false;System.Windows.Forms.Application.VisualStyleState=System.Windows.Forms.VisualStyles.VisualStyleState.NoneEnabled;}privatevoidResolveTemplate(IFrameTemplatetemplate){IBarManagerHolderformTemplate=templateasIBarManagerHolder;if(formTemplateisRibbonForm){InitRibbonOptions(((RibbonBarManager)formTemplate.BarManager).Ribbon);}else{InitBarOptions(formTemplate.BarManager);UserLookAndFeel.Default.SetWindowsXPStyle();}}protectedvirtualvoidInitRibbonOptions(RibbonControlribbon){if(ribbon!=null){ribbon.ItemAnimationLength= 0;ribbon.GroupAnimationLength= 0;ribbon.PageAnimationLength= 0;ribbon.ApplicationButtonAnimationLength= 0;ribbon.GalleryAnimationLength= 0;ribbon.TransparentEditors=false;InitBarOptions(ribbon.Manager);}}protectedvirtualvoidInitBarOptions(BarManagermanager){if(manager!=null){manager.AllowItemAnimatedHighlighting=false;}}}}
Thank you Dennis! Works like a charm!!!
Added By: Arjan van Dijk at: 7/14/2015 2:40:57 PMYou can also consider ngen.exe to speed up
Added By: Paul Berger at: 9/15/2015 10:02:14 PMIs there an article like this for VCL?
Added By: Dennis (DevExpress Support) at: 9/16/2015 1:06:48 AM@Paul: To process your recent post more efficiently, I created a separate ticket on your behalf: T290221: How to speed up application under Remote Desktop Services (formerly known as Terminal Services) environment. This ticket is currently in our processing queue. Our team will address it as soon as we have any updates.
Added By: manraj patel 2 at: 9/21/2015 5:19:02 AMWhat if I am not using ExpressApp framework in my app?
Added By: Dennis (DevExpress Support) at: 9/21/2015 5:22:03 AM @manraj: You can just set the RibbonControl, SkinManager, etc. properties manually as shown in the code example above.Added By: Christoph Mark at: 2/6/2018 12:01:12 AM Using ngen to speed up is really effective!But you have to take care about your platform:
Ngen can be runned for 32-Bit or for 64-Bit.
32-Bit: C:\Windows\Microsoft.NET\Framework\v4.0.30319\ngen.exe
64-Bit: C:\Windows\Microsoft.NET\Framework64\v4.0.30319\ngen.exe
If your app is running in x64 (or "Any CPU" on 64-Bit-Machine) you need to use ngen-Framework64.
We prefer 32-Bit, because we don't need "benefits" of 64-Bit and 32-Bit runs faster in our environments.
How to: Create Items with Subitems in TileBar Using XAML
This example shows how to populate TileBar in XAML. To add an item into TileBar, add the TileBarItem element into the TileBar.Items collection. Please note that Items is a content property, so you can skip its tag when using it in XAML. To show an image in TileBarItem, use the TileGlyph property.
How to: Bind TileBar to a Collection of Items
To use TileBar according to the MVVM, pattern, you can generate TileBarItems from a collection. To accomplish this task, assign a collection to the TileBar.ItemsSource property. To change properties of generated TileBarItems, use the TileBar.ItemContainerStyle property. If it's necessary to build a multi-level hierarchy, put TileBar into TileBarItem.FlyoutContentTemplate.