Quantcast
Channel: DevExpress Support Center (Examples)
Viewing all 7205 articles
Browse latest View live

How to export selected appointments to Google Calendar using Google Calendar API

$
0
0

This example illustrates how to export selected appointments to a specific Google Calendar using the Google Calendar API. Google provides the corresponding guidelines regarding the use of this API:

Google Calendar API 

Before using this API, make certain you have read and are in compliance with Google’s licensing terms. Next, you’ll need to generate a corresponding JSON file with credentials to enable the Google Calendar API.

 

We have a corresponding KB article which contains a step-by-step description of how to generate this JSON file for the installed application type:

How to enable the Google Calendar API to use it in your application


The the OAuth 2.0 flow both for authentication and for obtaining authorization is similar to the one for Web Server Applications except three points:

1) When creating a client ID, you specify that your application is an Installed application. This results in a different value for the redirect_uri parameter.
2) The client ID and client secret obtained from the API Console are embedded in the source code of your application. In this context, the client secret is obviously not treated as a secret.
3) The authorization code can be returned to your application in the title bar of the browser or in the query string of an HTTP request to the local host.

Please refer to Google OAuth 2.0 documentation for more information.


After you generate this JSON file, start the "oauth2callback.aspx" page for authorization. 

1. Enter the email address you used to generate the JSON file.
2. Select the JSON file on the client machine by clicking the "Browse" button.
3. Click the "Get 'Client ID' and 'Client secret' from file" button to upload the selected file and enable the Google Calendar API.
4. The application should be navigated to the "Default.aspx" page.
5. Select a corresponding calendar to which the selected appointments are exported from the list.

 


P.S. To run this example's solution, include the corresponding "Google Calendar API" assemblies into the project.

For this, open the "Package Manager Console" (Tools - NuGet Package Manager) and execute the following command:

Install-Package Google.Apis.Calendar.v3

See Also:

Synchronizing with Google Calendar

How to import Google Calendar using Google Calendar API


How to show the Crosshair Cursor programmatically on the client side

$
0
0
This example demonstrates how to show the Crosshair Cursor programmatically on the client side.

How to create a custom Action with a custom control in XAF ASP.NET application

$
0
0

This example demonstrates how to create a custom action that accepts two parameters (a DateTime range), how to extend the web ActionContainerHolder to create a custom action item with a complex control. The code is based on the built-in ParametrizedAction item. Note that it is required to place a custom ActionContainerHolder to our web templates (aspx pages) instead of the default ActionContainerHolder, otherwise a custom action item will not be created. See how this is done in the DefaultTemplateContent1.ascx file. For additional information, refer to the How to: Customize an ASP.NET Template topic.

How to programmatically show the Crosshair Cursor

$
0
0
This example demonstrates how to programmatically show the Crosshair Cursor on a mouse click.

How to pass a complex object as a callback argument

$
0
0

This sample demonstrates how to convert custom types to the JSON string on the client side and parse this string on the server. The conversion is performed using JSON.stringify. This function is a standard function for all browsers.
The JSON string is converted in a code-behind file using the JavaScriptSerializer.Deserialize method.

In the sample, if it is not possible to deserialize user input, an exception is thrown.

See also:
How to pass complex objects to a callback Action as callback arguments

How to filter ASPxGridView bound to SqlDataSource by using an external ASPxComboBox in ASPxRoundPanel

$
0
0

This example demonstrates how to filter the ASPxGridView bound to SqlDataSource via the ControlParameter. The ControlParameter is passed to the SqlDataSource from an external ASPxComboBox. The ASPxComboBox is inside ASPxRoundPanel. Use the following syntax to find the ASPxComboBox inside the ASPxRoundPanel: ASPxRoundPanelID$ASPxComboBoxID.

See also:
E2041

Question Comments

Added By: Cláudio Teixeira 1 at: 12/28/2016 3:53:21 AM    I am in the learning phase of DevExpress.
I use evaluate version .v11.2, Version = 11.2.10.0.
I tried to apply the example and it presented me with an error.


Não foi possível encontrar o controle 'ASPxGridView1$idTela' em ControlParameter 'idTela'.


    <dx:ASPxGridView ID="ASPxGridView1" runat="server" AutoGenerateColumns="False"


     <dx:GridViewDataComboBoxColumn Caption="Tela" FieldName="tela" VisibleIndex="2" Width="250px"
             CellStyle-Wrap="False" FilterCellStyle-Wrap="False">
             <PropertiesComboBox ButtonStyle-Wrap="False" Style-Wrap="False" Width="250px" ClientInstanceName="tela"
              TextField="tela" ValueField="tela" DataSourceID="SqlDataSourceTelas" IncrementalFilteringMode="Contains">
              <ButtonStyle Wrap="False"></ButtonStyle>
              <ValidationSettings ErrorDisplayMode="Text" CausesValidation="True" ErrorTextPosition="Bottom"
                  EnableCustomValidation="True" Display="Dynamic" SetFocusOnError="True" ErrorText="Selecione tela">
                  <ErrorFrameStyle BackColor="Red" Font-Bold="True" Font-Names="Arial" Font-Size="Larger">
                  </ErrorFrameStyle>
               <RequiredField IsRequired="true" ErrorText="Selecione tela" />
              </ValidationSettings>
              <Style Wrap="False"></Style>
             </PropertiesComboBox>
             <EditItemTemplate>
                 <dx:ASPxComboBox ID="idTela" runat="server" DataSourceID="SqlDataSourceTelas" 
                     Value='<%# Bind("tela") %>' TextField="tela" ValueField="tela"
                     ValueType="System.String">
                 </dx:ASPxComboBox>
             </EditItemTemplate>
             <FilterCellStyle Wrap="False"></FilterCellStyle>
             <CellStyle Wrap="False"></CellStyle>
            </dx:GridViewDataComboBoxColumn>


            <dx:GridViewDataComboBoxColumn Caption="Coluna" FieldName="coluna" VisibleIndex="3" Width="250px"
             CellStyle-Wrap="False" FilterCellStyle-Wrap="False">
             <PropertiesComboBox ButtonStyle-Wrap="False" Style-Wrap="False" Width="250px" ClientInstanceName="coluna"
              TextField="coluna" ValueField="coluna" DataSourceID="SqlDataSourceColunasTelas" 
                 IncrementalFilteringMode="Contains">
              <ButtonStyle Wrap="False"></ButtonStyle>
              <ValidationSettings>
               <RequiredField IsRequired="true" />
              </ValidationSettings>
              <Style Wrap="False"></Style>
             </PropertiesComboBox>
             <FilterCellStyle Wrap="False"></FilterCellStyle>
             <CellStyle Wrap="False"></CellStyle>
            </dx:GridViewDataComboBoxColumn>


    <asp:SqlDataSource ID="SqlDataSourceTelas" runat="server" 
        ConnectionString="<%$ ConnectionStrings:CECM.Properties.Settings.Conex %>" 
        SelectCommand="Select tela From [VW_TELAS]" >
    </asp:SqlDataSource>
    <asp:SqlDataSource ID="SqlDataSourceColunasTelas" runat="server"
        ConnectionString="<%$ ConnectionStrings:CECM.Properties.Settings.Conex %>" 
        SelectCommand="Select coluna From [VW_TELAS_COLUNAS] Order by Ordem" >
        <SelectParameters>
         <asp:ControlParameter ControlId="ASPxGridView1$idTela" Name="idTela"  
           PropertyName="SelectedDataKey.Values[idTela]" Type="String"/>
        </SelectParameters>
    </asp:SqlDataSource>

Thanks

Cláudio Teixeira


ASPxGridView - How to change modified cell styles dynamically in Batch Edit mode to preserve the custom conditional formatting set in HtmlDataCellPrepared

$
0
0

If you're applying custom conditional formatting to ASPxGridView cells by using the HtmlDataCellPrepared event handler, this formatting will not be applied to the modified cells in Batch Edit mode because these modifications are stored on the client side until you press the "Save Changes" button.
In order to apply the same formatting to the modified values in this mode, it's necessary to set their style dynamically in the client-side BatchEditEndEditing event handler.
Add a custom attribute to each cell of the formatted column in the HtmlDataCellPrepared event handler as demonstrated in the ASPxGridView - How to set a different color for the modified cell in different columns in Batch Edit mode example. Set the grid's Styles.Row.CssClass property, and use this class and attribute to access the currently edited row's cell on the client side. Then, set the modified cell's style in the client-side BatchEditEndEditing event handler based on the newly entered value.

ASPxGridView - How to edit a password field

$
0
0

According to the security settings which are implemented in our editors, the password can't be set on the server side. So, if you edit a filed that has the Password = true setting, you will see an empty editor, which might cause a number of problems for end-users.
This example illustrates one of possible manners to edit a password field.


Spreadsheet - How to add a chart to a document

ASPxSpreadsheet - How to add a chart to a document

How to emulate the MS Word information status bar when using RichEditControl

$
0
0

This example demonstrates how to implement an information status bar that mimics the MS Word status bar:


This task is accomplished by using the RichEditControl's DocumentLayout API. Review the following help topic for additional information:
Layout API

In this example, we use different approaches to collect required information:
- The DocumentIterator class to obtain the total word count.
- A custom LayoutVisitor descendant to get the caret position (the line and column indices).


See also:
Layout API - Simple Example
Document Layout API - Practical usage

ASPxCombobox - How to implement filtering of a large data source

$
0
0
This example demonstrates how to implement filtering of a large data source in ASPxCombobox.

To implement this functionality, handle the ASPxCombobox.ItemsRequestedByFilterCondition and ASPxCombobox.ItemRequestedByValue events. These events are used to filter data depending on a filtering expression or the ASPxCombobox' selected value.
Question Comments

Added By: Zhengrong Zhao at: 12/28/2016 7:35:31 PM    Hi 
in this sample
if the ShipName field is chinese , we use aspxcombox filter  chinese character  ,  when we input chinese character , the Aspxcombox control auto clear the chinese character , english character is ok still.

how to fix this filter chinese character  problem ?

How to: Modify RibbonControl Items and Properties in DiagramDesignerControl

$
0
0
There are several ways to customize the built-in RibbonControl:
1. Use the RibbonControl's Merging feature. Create an external RibbonControl with required elements and attach the MergingProperties.ElementMergingBehavior property to DiagramDesignerControl. After performing this, elements form the DiagramDesignerControl's ribbon will be merged with the parent ribbon.
2. Customization actions. Using customization actions, you can create/remove/update bar items. Use the DiagramDesignerControl.Actions property to define customization actions. The DevExpress.Diagram.Core.DefaultBarItemNames class contains default item captions displayed in the diagram's Ribbon.
3. Overriding theme styles. Almost all bar items in DiagramDesignerControl have styles defined as DynamicResource. You can override these styles and set required properties in them. To learn more about modifying our theme resources, refer to How to modify DX themes in WPF.

How to remove standard items and add custom ones to the Ribbon toolbar and status bar of a RibbonDocumentPreview

How to implement an editor with a dynamic autocomplete list

$
0
0

This example demonstrates how to create a custom LookUpEdit class descendant that allows you to provide autocomplete items based on typed text. The items can be provided via the GetAutoCompleteList event.

Question Comments

Added By: Brian Winkleman at: 1/21/2015 9:44:28 AM    

How would i then add this control as a xtraBar to a BarManager?

Added By: Alexey Z (DevExpress Support) at: 1/21/2015 11:21:54 PM    Hello,

In order not to mix several questions within one thread, I will extract your question to a new ticket. Let us continue our discussion there How to add a LookUpEdit descendant to BarEditItem.Added By: Onyx DevExpress at: 7/26/2016 5:45:21 PM    Behavior is slightly different between 16.1 vs 15.s and prior ones in the examples.
In 16.1 a value type that's not in the list will be kept while in prior version it reverts to whatever it likes from the list.

Example: I type Support and it makes it Supportyahio
I remove the yahio
with 16.1 it leaves it Support but with 15.2 and prior it reverts to Supportyahio

I can't find anything in the release notes. Is this a new feature?  I like the way it works in 16.1 but will it stay this way? Added By: Stas (DevExpress Support) at: 7/27/2016 6:02:28 AM    

Hello,

I've created a separate ticket on your behalf (The behavior of the E3132 example in version 16.1 is slightly different than in version 15.x). It has been placed in our processing queue and will be answered shortly.

Added By: SamDev at: 10/24/2016 7:31:25 PM    This control with a bit of customization (painting capabilities to show more than what is being typed in the box in the dropdown) would be a hit control. I think everyone using Winforms feels left out. Problem is with custom development of this which is possible is the fact that it may not work in the future.

Example usage scenario that no other winforms control handles well:

1. Type a generic search (example in our application they want to search for anything in there application clients, appointment descriptions etc)
2. Dropdown will have an event handler of possible hits associated with a unique id that the event handler allows to pass in


Example dropdown

---------------------
John                     <------Typed text
---------------------
John (client) - id 0                         <------ Results that are not sitting in a table in a database
We will meet with John (appointment)

---------------------

3. User selects the value and the key returned in the callback function is set as the value.  Of course the developer utilizing control will have to know what keys are associated with search result and keep track of which ones they posted as a result in the call back that is provided with devexpress. So as the user types the call back is called.  This control is actually very simple to implement but we don't want to do it as we are using straight devexpress controls so they can be upgrade proof.


example callback

searchresult_populate(string typedtextofuserintextbox)
{
  // Allow user of control to populate with endless variation of data vs a concrete dataset (think no tables exist)
  Dictionary<key,valuestoshow> valuestoshow =  GenerateADictionaryFromSearchByWebAPI(typedtextofuserintextbox) or GetDataSearchedFromFile(typedtextofuserintextbox)
  return valuestoshow;
}

I think this is going to be the best and most flexible editor and will reduce a lot of variations of dropdowns. Allowing painting of results (highlighting typed text).

A perfect example is from a great website called google.  Simple and returns infinite array of information from potentially limitless data sources.  Its up to the developer to choose. Tired of hacking this out and using gridlookupedit. I want to do a simple select and populate it whichever way and not have to be so tightly bound to a database. Jquery has this control and many other frameworks even your devexpreme autocomplete widget.




Added By: SamDev at: 10/24/2016 7:34:58 PM    Winforms needs this badly.
https://js.devexpress.com/Demos/WidgetsGallery/#demo/editors-autocomplete-overview
Added By: Stas (DevExpress Support) at: 10/25/2016 6:18:04 AM    

Hello,

To avoid any misunderstanding, let's continue discussion of this question in the An editor with a dynamic autocomplete list ticket.

Added By: Vladimir Sorokin at: 12/29/2016 11:32:37 AM    Great example, but in case I set SearchMode.OnlyInPopup it stop working!
Can you advise how it can be fixed?

And one more question - how is it possible to implement async loading of AutoCompleteListEventArgs?

How to: Show different views for the same object, based on the source view, from where it is open or created

$
0
0

I have two business classes representing a producer and a consumer of an transaction, and a transaction class that have references to both producer and consumer. I want to be able to open (or create) a transaction from the producer's transactions list, and do not show the producer property in the detail view (it is obvious). The same behavior I want for the consumer object.

To accomplish this task, create additional detail views for the transaction class, with a different layout for each case. Then, create a controller for nested transaction list views. In the controller, handle the NewObjectViewController.ObjectCreated and ListViewProcessCurrentObjectController.CustomProcessSelectedItem events of corresponding controllers. In these event handlers subscribe to the XafApplication.DetailViewCreating event. In this event, you can specify a desired detail view, based on the object type displayed in the owner frame's view. Do not forget to unsubscribe from this event.

See Also:
How to provide a specific View layout for users of certain security roles
Core - Provide an easy way to specify a different DetailView depending on whether a new object is created, shown from the ListView or on other conditions

How to provide a specific View layout for users of certain security roles

$
0
0

Scenario:
This example demonstrates how to show a custom View against a role of the currently logged user. Custom Views were created and customized through the Model Editor for each role separately. For more convenience, custom Views have a name of a role in the Id attribute. For instance: Contact_ListView_Administrators, Contact_DetailView_Administrators, Contact_ListView_Users, Contact_DetailView_Users, etc. You may consider a specific naming convention, for example, to add a role name to the end of the view name. Use User and Admin user names with empty password to login into the application.



Implementation details:
There is E274.Module\Controllers\CustomizeViewAgainstRoleMainWindowController that tracks View showing using the XafApplication.ViewCreating event and replaces the default View's Id with a custom Id found in the Application Model by the role name. 

Alternatively, you can handle the XafApplication.UserDifferencesLoaded event and patch the ViewID of required navigation items under the NavigationItems node as well as the DefaultListView/DefaultDetailView attributes of the BOModel | Class nodes.

See also:
How to: Show different views for the same object, based on the source view, from where it is open or created

Question Comments

Added By: Serkan Dede 1 at: 1/14/2016 10:27:35 AM    

Hi,

I got error in Application_ViewShowing method on line :
e.View.SetModel(modelView);

Error Message:
Cannot change property 'DefaultSorting' when the XPCollection is not in design or initialization mode.

Any idea to resolve this issue?

Added By: Dennis (DevExpress Support) at: 1/15/2016 2:02:00 AM    

Hello Serkan,

To process your recent post more efficiently, I created a separate ticket on your behalf: T334575: The "Cannot change property 'DefaultSorting' when the XPCollection is not in design or initialization mode" error occurs when calling e.View.SetModel(modelView);. This ticket is currently in our processing queue. Our team will address it as soon as we have any updates.

Added By: Joel Sanches at: 4/20/2016 11:27:52 AM    This is marked as obsolete. What would be the present recommendation to handle the same scenario in XAF?Added By: Alexey (DevExpress Support) at: 4/21/2016 9:25:16 AM    

Hello Joel ,
I've created a separate ticket on your behalf (T370594: E274 in 15.2). It has been placed in our processing queue and will be answered shortly.

ASPxRichEdit - How to save words added via the "Add to Dictionary" option to a custom physical dictionary

$
0
0
Currently, ASPxRichEdit doesn't save words added by a user via the "Add to Dictionary" option in the physical dictionary file and stores these changes in a Session variable.

If it's necessary to save changes from the temporary dictionary stored in Session to a physical dictionary file on demand, you can accomplish this task programmatically, for example, on a button click. Get the temporary dictionary that has the SpellCheckerCachedCustomDictionary type from Session in the following way:
[C#]
SpellCheckerCachedCustomDictionarydic=Session[ASPxRichEdit1.Settings.SpellChecker.Dictionaries[0].CacheKey]asSpellCheckerCachedCustomDictionary;
Note that you need to pass an index of your custom dictionary to the collection of other dictionaries used in your project as the Dictionaries collection index in this code.

Then, pass words from that temporary dictionary to a new instance of your custom dictionary class derived from SpellCheckerCustomDictionary and save this custom dictionary to the appropriate physical path obtained from the temporary dictionary's DictionaryPath property:
[C#]
MyCustomDictionarydictionary=newMyCustomDictionary();for(inti= 0;i<dic.WordCount;i++)dictionary.AddWord(dic[i]);dictionary.SaveAs(dic.DictionaryPath);

How to create a custom exporter for a specific format

$
0
0

This example illustrates how to create and register a custom DocumentModelExporter for a BBCode format. It supports a number of basic BBCode tags (including hyperlinks and images). The major export functionality is implemented in overridden Export* methods of the BBCodeExporter class.

Question Comments

Added By: Neven at: 1/2/2017 5:47:06 AM    Hi all,
what has changed in 16.x since last version is 15.2.14?
Kind regards,
Neven

How to hide navigation items based on the current user

$
0
0

Our Security System allows hiding navigation items for certain users by configuring their Navigation permissions. These permissions can be configured in two modes:


1. Using Type Permissions. This mode was used prior to version 16.2. It allows hiding all navigation items based on the type of objects shown by them.
2. Using Navigation Permissions for individual navigation items. This mode was introduced in version 16.2 and is used in new projects by default. To enable it in old projects upgraded to version 16.2, set the SecurityStrategy.SupportNavigationPermissionsForTypes property to false. If you are using EF, you will need to upgrade your database as described in the How to: Add Navigation Permissions to an Entity Framework Application Created with XAF 16.1 article.

Refer to the Security System Overview topic for additional information of how to assign these permissions.

If your XAF version is less than 16.2 and you need to grant permissions for individual navigation items (e.g., to a DashboardView or to a certain ListView model), use the solution described below to extend the Security System's functionality. In this example, the HiddenNavigationItems property allowing you to hide navigation items by their ID will be added to the role class.
The approach with overriding the ShowNavigationItemController,SynchItemWithSecurity method shown in this example can be also appropriate for tasks that are not related to the Security System directly. You can hide or customize any navigation item in this manner. Starting with version 16.2, it is recommended to use the ShowNavigationItemController.NavigationItemCreated event instead.

 

Steps to implement:

1. Implement a custom permission type - NavigationItemPermission - that can be used to check access permissions for a certain navigation item by its ID.
2. Implement a custom permission request - NavigationItemPermissionRequest - that will be sent to check whether the current user has access to a certain navigation item.
3. Implement a custom permission request processor - NavigationItemPermissionRequestProcessor - that determines whether the current user has permissions for the received permission request.
4. Implement a custom role with the HiddenNavigationItems property. Extend it with the GetPermissions method to create NavigationPermission instances based on the value of the HiddenNavigationItems property.
5. Specify the custom role in the Security System's RoleType property in the Application Designer, as described in the How to: Implement Custom Security Objects (Users, Roles, Operation Permissions) topic.
6. Register your permission request processor in the application by handling the SecurityStrategy.CustomizeRequestProcessors event in the Program.cs and Global.asax.cs files.
7. Implement a ShowNavigationItemController's descendant - CustomShowNavigationItemController - and override its SynchItemWithSecurity method to deactivate navigation items prohibited by the CustomSecurityRole.HiddenNavigationItems property.

After implementing these steps in your project, you will be able to assign a role with the HiddenNavigationItems property to the required users to restrict their access to certain navigation items.

Note: The example is based on the PermissionPolicyRole and PermissionPolicyUser classes. These classes are used by the Security System when selecting the Allow/Deny permissions policy in the Solution Wizard. If your project was created using an earlier XAF version (prior to 16.1) and the SecuritySystemRole and SecuritySystemUser classes are used in it, change the version number in the combo box below to see an example for these classes.

Question Comments

Added By: Maurice Picton at: 6/10/2014 7:52:32 AM    

Can someone post the HideNavigationItemsExample that is mentioned below in the code?
I'm having trouble implementing this solution.

Added By: Maurice Picton at: 6/10/2014 8:00:46 AM    

In the steps to implement, none of the entities you describe are in any of the documentation and I can't locate them in visual studio.

Added By: Anatol (DevExpress Support) at: 6/10/2014 8:07:44 AM    These classes are implemented in this example. You can see their code below, under the comments. To download the complete example, use the Downloads - Example link at the right edge of this page.Added By: Randy Jean at: 2/13/2015 11:15:42 AM    

Is there a way to make this be least restriction has precedence.  For instance, if I have a users role that hides navigation items and a direct role that does not hide, can the director role take precedence over the user role somehow?

Added By: Randy Jean at: 2/13/2015 11:33:21 AM    

think I may have come up with a way to make this work.  If I add a wildcard * to my HiddenNavigationItem then modify the IsGranted like so:

       public override bool IsGranted(NavigationItemPermissionRequest permissionRequest) {
           foreach (NavigationItemPermission permission in permissions.GetPermissions<NavigationItemPermission>()) {
               if (permission.HiddenNavigationItem == permissionRequest.NavigationItem) {
                   return false;
               } else if (permission.HiddenNavigationItem.Replace("*","") == permissionRequest.NavigationItem) {
                   return true;
               }
           }
           return true;
       }

This seems to do what I want.  So I can have user with the restrictions but then override in Director with the wildcard character like this: AddressGroup*, Person_Varied*

Do you see any issues with this?

Added By: Anatol (DevExpress Support) at: 2/16/2015 6:16:18 AM    

I am not sure that this approach will work in all cases, since the GetPermissions method returns permissions from all user roles, and with your implementation the first permission always wins. So, it is better to set a boolean variable based on the permission's HiddenNavigationItem property and return this value after processing all NavigationItemPermission permissions.

Added By: Genesis Supsup 1 at: 8/7/2016 12:48:08 PM    This example doesn't seem to work anymore on when using  PermissionPolicyRoleBase in version 16.1+ ... any workaround?Added By: Anatol (DevExpress Support) at: 8/9/2016 1:15:00 PM    I have updated the example - now it uses the PermissionPolicyRole and PermissionPolicyUser classes. The PermissionPolicyRole class does not have the GetPermissionsCore method, so it was necessary to add this method to the CustomSecurityRole class and call it in the SecurityStrategy.CustomizeRequestProcessors event handler to collect permissions of the current user manually.Added By: Konstantin B (DevExpress) at: 12/20/2016 6:19:11 AM    With the version 16.2, you can grant or deny access for specific navigation items and groups in the Navigation Permissions tab of the PermissionPolicyRole Detail View (see Security - Restrict access to certain navigation items).

Added By: MohammedFarooq at: 12/21/2016 10:00:45 AM    Hi Anatol,

I have applied this approach since long time V15+ and everything was working fine but now i upgraded to V16.2.3 and this logic is not working anymore. Could you please help me as it has affected my production apps.Added By: Alexey (DevExpress Support) at: 12/21/2016 10:47:15 AM    

Hello Mohammed,

I've created a separate ticket on your behalf (T465421: E380 not working ).

Viewing all 7205 articles
Browse latest View live