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

How to bind a report to an XML file


How to bind a report to a datasource, whose data is loaded from an XML file

ASPxGridView - How to implement cascading combo boxes in Batch Edit mode by using WebMethods

$
0
0

This example shows how to implement cascading combo boxes in EditingSettings "Batch" mode by using WebMethods. The example is based on ASPxGridView - How to implement cascading comboboxes in Batch Edit mode and How to populate a cascading ASPxComboBox by using WebMethods examples. The main idea is to remove EditTemplate from ASPxGridView and replace the ASPxComboBox Callback by WebMethods to refresh the child's combo box item collection. This will improve the server's response time and reduce the server's load.

See also: 
ASPxGridView - How to implement cascading comboboxes in Batch Edit mode

ASPxDashboardViewer - How to customize scales settings for individual gauges in GaugeDashboardItem

How to reorder dxDataGrid rows using drag-and-drop

$
0
0
This example demonstrates how to move dxDataGrid rows using Draggable and Droppable plug-ins of the jQueryUI library. 

To accomplish this task, we need to perform the following steps:

1. Set a fake CSS class ("myRow") to a data row. This will help us find all data rows using a jQuery selector and assign Draggable and Droppable plug-ins to the rows. Assign the key value of each row to a row element. We need to use the dxDataGrid.rowPrepared callback function for this step.
2. When the drop event fires, we need to get indexes of the dropped and the target rows, recalculate indexes according our requirements and save them to a data store.
3. Reload data by calling the dxDataGrid.refresh method.

See also:
ArrayStore.load
ArrayStore.byKey
ArrayStore.update
.data()

How to use XtraReport's multi-value parameter as a column chooser

$
0
0

This example demonstrates how to use a report parameter in multi-value mode to grant an end-user the capability to select columns that should be displayed in the report:



LookUpValueCollection is used in the report's class to store a column's filed names (as the Value property) and their captions (as the Description property). Then, this collection is used to assign the LookUp values to the report's column chooser parameter and to get the column caption by its field name. The report's DataSourceDemanded event handler is used to get columns chosen by the end-user and create corresponding cells in the report's XRTable controls (that were created at design time).

Question Comments

Added By: mayur sahu 1 at: 4/27/2016 11:27:46 PM    
string[] columns = (string[])this.Parameters["ReportColumns"].Value;
 gives an error Added By: Olga (DevExpress Support) at: 4/28/2016 7:09:35 AM    Hello,
As I can see, you've posted a  separate ticket with a similar question (Unable to add column chooser functionality in Table). Let's continue this discussion there. Thanks for your cooperation.

How to customize the New Report Wizard (introduced in the 2014 vol.1 release) in the End-User Designer

$
0
0

This sample illustrates how to customize the wizard in the End-User Designer.

Question Comments

Added By: Jon 9 at: 10/23/2014 5:08:13 AM    

Is there any further documentation on how to customize the new report wizard. This sample code would really benefit from some comments... I can see why it has attracted down votes - it isn't really sufficient.

Added By: Ingvar (DevExpress Support) at: 10/23/2014 6:28:50 AM    Hi Jon,

I agree with you that we need to prepare documentation related to our Report Wizard. I have created a separate request and forwarded it to our developers. You can track our progress in the following ticket:
Documentation - Provide informative help topics on how to customize Report Wizard introduced in v14.1Added By: Jon 9 at: 10/23/2014 6:37:12 AM    

Great, thanks! Will look forward to it.

Added By: Scott Bogash 1 at: 12/5/2014 9:19:21 AM    

Can you please update this example to work with v2014 vol 2.3.  Thank you

Added By: Scott Bogash 1 at: 12/30/2014 11:43:37 AM    

Can you please update this example to work with v2014 vol 2.3.  Thank you

Added By: Andrew L (DevExpress Support) at: 12/30/2014 1:09:06 PM    

Hello Scott,

We are working hard on this problem and we will do our best to prepare this sample to work with our next minor release, 2014.2.4.

Added By: Andrew L (DevExpress Support) at: 1/21/2015 1:29:16 AM    

Hello Scott,

We have found an issue in our 2014.2.4 release, which prevents us from publishing the sample. Please install the hot fix provided in the The Wizard Customization example (T140683) cannot be compiled thread and review the updated samples (in that thread).

Added By: Michael Vasiliev at: 3/24/2016 9:19:30 AM    Hi guys.

Can you please tell me how can I create a custom view for custom wizard?
I noticed that the views in the example (ChoosePersonsPageView2) were created  in Designer.
And they have specific controls (DevExpress.DataAccess.UI.Wizard.BackButton).
But I can't find them in Toolbox.Added By: Jannet (DevExpress Support) at: 3/24/2016 10:20:03 AM    

Hello,
To process your recent post more efficiently, I created a separate ticket on your behalf: T360326: How to create a custom view for custom wizard. This ticket is currently in our processing queue and will be addressed shortly.

Added By: Chad at: 4/29/2016 2:19:26 PM    Can you please fix the file Person.vb to remove the New Object cast..

[VB.NET]
PublicFunction GetStaticPersons() As IList(Of Person)ReturnNew List(Of Person)({New Person() With {.FirstName = "John", .SecondName = "Abbot"}, New Person() With {.FirstName = "Paul", .SecondName = "Bass"}, New Person() With {.FirstName = "George", .SecondName = "Chance"}})EndFunction


ASPxDashboardDesigner - How to save dashboards to a data base

$
0
0
This example shows how to create a custom dashboard storage that allows storing dashboards in a data base.
Custom dashboard storage should implement the IDashboardStorage interface, that contains the following public methods:

string CreateNewDashboard() - creates a new dashboard and saves it to a storage. Returns an ID of the created dashboard.
XDocument GetDashboard(string id) - returns a dashboard by its id in the  XDocument format that describes an object model of the dashboard. 
IEnumerable<string> GetDashboardIDs() - returns a list of IDs of dashboards available in the data storage .
void UpdateDashboard(string id, XDocument document) - updates the dashboard by its id with new settings.

dxDataGrid - How to implement a custom store with CRUD operations

$
0
0

The dxDataGrid binding using a CustomStore help topic and the A custom data source does not apply paging, filtering, sorting and grouping article describe how to implement a custom data source that loads data for a dxDataGrid . This example demonstrates how to make a custom store for the dxDataGrid widget manipulate data. For this purpose, we need to implement the insertupdate and remove methods in our custom store. Each of these methods will be called automatically by the widget. 

The insert method accepts a parameter that contains values for a new item. The update method accepts two parameters: the first one is a key value of the editing row, and the second one contains values of modified data fields. The remove method accepts a parameter that contains a key value of the deleted row. When a method is called, we need to send a corresponding request to our data service and pass the required parameters. We use jQuery.ajax for sending requests to our data service.

Starting with 15.2, dxDataGrid supports sorting, filtering, grouping, paging and summary operations on the server side. See Use CustomStore - Remote Operations to learn more. The How to implement a data service that supports remote operations for dxDataGrid example demonstrates how to do this.



For versions prior to 15.2: 
This example can be tested with a data service from How to implement the Rest service based on an ASP.NET WebAPI application.


See also:
Use CustomStore - Remote Operations
Deferred Object
jQuery.extend
How to implement CRUD operations with a DataSource
dxDataGrid - How to implement a custom store with CRUD operations (SQLite)
Question Comments

Added By: Matthias Klein at: 10/6/2015 11:05:23 AM    

Is this a typo in line 20? ("lebgth")

Added By: Matthias Klein at: 10/6/2015 12:05:10 PM    

I have a date field in my dxDataGrid. When I update or insert a row the date is in the Format: "Thu Oct 08 2015 20:55:06 GMT +0200)". How can I change the format in which the date fields will be transfered as data?

Added By: Nikolai (DevExpress Support) at: 10/7/2015 2:23:35 AM    Hi Matthias,

Thank you for bringing this to our attention. I've updated our code.

As for "date field in my dxDataGrid", I've created a new ticket regarding this issue. Please post your comments in the T297669: dxDataGrid passes the string interpretation of a Date value to insert/update methods of CustomStore ticket.

 

Added By: David Karasek 2 at: 5/2/2016 11:08:20 AM    
Where is the code/JSON resource file for this service?    

url: 'http://localhost:59611/Categories',

How to group ComboBoxEditor items

$
0
0

This example demonstrates how to group ComboBoxEditor items.

DxEditors support binding to ICollectionView, so the main idea of this feature realization is the use of ListCollectionView.

How to bind the GridView with the Entity Framework in a regular and Database Server modes

$
0
0

This example is an illustration of the KA18615: How to bind MVC GridView Extension with Entity Framework in a server mode KB Article. Please refer to the article for an explanation.
This example illustrates how to use the GridViewExtension.BindToEF method for binding the MVC GridView Extension with the EF data content in:

- The Grid mode. All data shaping operations are performed on the WebServer/Grid side (for a small volume of data). Note that a table from the EF context used as the grid's Model should be explicitly evaluated, for example, via the ToList method:

[C#]
NorthwindContextdb=newNorthwindContext();

[C#]
publicActionResultGridViewPartial(){returnPartialView(db.Orders.ToList());}

[C#]
@Html.DevExpress().GridView(settings=>{...settings.CallbackRouteValues=new{Controller="EFGridMode",Action="GridViewPartial"};}).Bind(Model).GetHtml()

- The Database Server mode. All data shaping operations are performed on the database server side. This mode is effective when it is necessary to maintain a large volume of data only, for example 100k records. Since this mode creates special LINQ queries, this mode may be not so effective when operating with small portion of data:

[C#]
NorthwindContextdb=newNorthwindContext();

[C#]
publicActionResultGridViewPartial(){returnPartialView(db.Orders);}

[C#]
@Html.DevExpress().GridView(settings=>{...settings.CallbackRouteValues=new{Controller="EFDatabaseServerMode",Action="GridViewPartial"};}).BindToEF(string.Empty,string.Empty,(s,e)=>{e.KeyExpression="OrderID";e.QueryableSource=Model;}).GetHtml()

This example operates the Northwind SQL Compact demo database. The data Model is defined via the EF Code First approach. Since tables’ column names contain spaces, it is necessary to define the corresponding mappings at the DBContext level (via the OnModelCreating method). In most cases, this step is no longer required.

Question Comments

Added By: David Kolb at: 6/13/2013 6:40:35 PM    

For EF 5.0, I get the following message from the view after returning EntityServerModeSource - "The model item passed into the dictionary is of type 'DevExpress.Data.Linq.EntityServerModeSource', but this dictionary requires a model item of type 'System.Collections.IEnumerable'."

Added By: Bernd Coch 1 at: 5/3/2016 8:52:15 AM    Hello,

I am using DevExpress v15.2 with Entity Framework 6. The application is using WebForms, so I cannot use the example below with QueryableSourc.

I create an IQueryable from the EF context as follows:
[VB.NET]
Dim connectionString = ConfigurationManager.ConnectionStrings("ConnectionString_1").ToString()Dim invDataContext = New Inv.InvDataContext(connectionString)

I need to set additional predicates (filters) to the IQueryable that I use as a datasource.  These come on top of any filters that the grid might create.
I obtain an instance of !Queryable from the context and add custom filters

[VB.NET]
' Predicate depends on user access rights, it is independent of the grid filter and always applied invDataContext.MyTable.Where(predicate)
Then I assign this source to the AspGridView and call Databind()

[VB.NET]
xGrid_Forecast.DataSource = source xGrid_Forecast.DataBind()
Then I am getting the error 

Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery) is not supported

What is the right way to bind an IQueryable to the  AspxGridView?  

The option of calling ToList() BEFORE assigning the IQueryable to the source is not viable, because it would mean that the entire table (> 200000 rows) would be fetched before the pager settings of the grid are applied.

Thank you for your help

Bernd
Added By: Mike (DevExpress Support) at: 5/3/2016 10:41:05 AM    

Hello Bernd,

I've created a separate ticket on your behalf (T374412: ASPxGridView - How to use DataSource as custom IQueryable from EF). It has been placed in our processing queue and will be answered shortly.

How to delete pages from PDF

$
0
0

This example illustrates how to use PDF Document Processor  for deleting pages from PDF.

In this example, the PdfDocumentProcessor.DeletePage  method is called 55 times to delete each odd numbered page in the TextDelete document (contains 109 pages) starting from the last odd numbered page.

The result is saved to the Deleted document, which contains only even pages, by calling the PdfDocumentProcessor.SaveDocument method.

The Universal Subscription or an additional Document Server Subscription is required to use this example in production code. Please refer to the DevExpress Subscription page for pricing information.

How to extract pages from a document

$
0
0
This example shows how to extract pages from a document into a separate file.

How to show the Deleting Confirmation box after performing some server-side actions

$
0
0

This example demonstrates how you can perform some server-side actions when a user clicks the "Delete" command button, and then show the Deleting confirmation PopupControl.


Use a custom command button to create a custom Delete link. Handle the server-side ASPxGridView.CustomButtonCallback event to perform server-side actions when the Delete button is clicked. Use ASPxGridView.JSProperties to pass values from the server side to the client. I have used the "cpShowDeleteConfirmBox" JSPropety to indicate if it is necessary to show the confirmation popup on the client when the grid's callback ends. The "cpRowIndex" JSProperty is used to pass the deleting row index from the server-side ASPxGridView.CustomButtonCallback event handler to the client.


The ASPxGridView.RowDeleting event is used for custom row deleting. It is not necessary to handle it if you are using the standard DataSourse deleting functionality.

Question Comments

Added By: Dik Helleman at: 1/28/2013 1:48:34 AM    

Hi,
Thank you for this example.
Can you tell me how I can hide/show controls on the popup (for example an aspxLabel) depending on values which are retrieved in de custombuttoncallback-function serverside?

Thanks,
Dik Helleman
The Netherlands

Added By: Vasily (DevExpress Support) at: 7/29/2013 11:37:44 AM    

Hi Dik,

I have extracted it to a separate ticket created on your behalf: Q377913 (How to show the Deleting Confirmation box after performing some server-side actions).

 GridView - How to add a custom button to the FilterPanel

$
0
0

This example demonstrates how to add a button to the FilterPanel.




To use this solution in your application, execute the following steps:

1. Create a custom GridControl as it is shown at How to create a GridView descendant class and register it for design-time use.
2. Implement all required functionality in the CustomGridViewHandler, CustomGridView, CustomGridFilterPanelPainter classes.


Implementation details

In fact, the buttons are not located in the FilterPanel. They are simply drawn on its surface. Therefore, it is necessary to implement the Click (or MouseDown\Up) event manually and trigger it when required in your scenario. In this example, the Click event is raised when a custom button is clicked. If you need, for instance, to raise this event when the mouse button is released, you can simply update the CustomGridView.UpdateButtonState method. For instance, pass a parameter into this method which will indicate whether or not the CustomGridViewHandler.OnMouseUp event occurs. Then use this parameter in order to determine whether or not the Click event should be raised. 

It is also possible to change the distance between custom buttons, as well as their size. For this, update the CustomGridView.UpdateButtonsRects method as your needs dictate.

See also:
How to add a custom button to a column header in a grid 
GridControl - How to add a check box to a column header


How to create a custom hyperlink control

$
0
0

This example does not apply to the latest XtraReports version, because with the 16.1 release, the corresponding functionality has become available out of the box. The current solution for this task is described in the following thread: Export to HTML - Create hyperlinks using the "a href=" tag to avoid security warnings.


The following example demonstrates how to create a custom HyperlinkLabel control. This control is intended to show hyperlinks on a web page without using JavaScript, as it is done by default in XtraReports. Instead, to show a hyperlink it shows the "a href=" tag to avoid security warnings.

How to create a Multi-Pane chart with different axis ranges

$
0
0

This example illustrates how to create a chart with multiple series placed in separate panes with an individual Y-axis. To accomplish this task you can create a secondary Y-axis item for each chart's Series and set its SeriesView.AxisY property to the newly created secondary axis.

Question Comments

Added By: Zhonglun Cai at: 5/5/2016 8:46:27 AM    This doesn't work when the chart control's data source is set to a DataTable and a series template is used.
It works for the initial values. But whenever a row is added to the DataTable. The chart view and layout will broken. Any suggestion to that? Added By: Zhonglun Cai at: 5/5/2016 8:48:56 AM    Here is the code to my problem:

[C#]
usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingDevExpress.XtraCharts;namespaceDXApplication4{publicpartialclassForm1:DevExpress.XtraEditors.XtraForm{DataTable_table=newDataTable();publicForm1(){InitializeComponent();_table.Columns.Add("Index",typeof(int));_table.Columns.Add("Type",typeof(int));_table.Columns.Add("Value",typeof(int));for(inti=0;i<10;i++){_table.Rows.Add(i, 0,newRandom(i).Next(100));_table.Rows.Add(i, 1,newRandom(i+1).Next(100));_table.Rows.Add(i, 2,newRandom(i+5).Next(100));_table.Rows.Add(i, 3,newRandom(i+7).Next(100));}chartControl1.DataSource=_table;chartControl1.SeriesDataMember="Type";chartControl1.SeriesTemplate.View=newDevExpress.XtraCharts.StepLineSeriesView();chartControl1.SeriesTemplate.ArgumentDataMember="Index";chartControl1.SeriesTemplate.ValueDataMembers.AddRange(newstring[]{"Value"});for(inti= 0;i<chartControl1.Series.Count;i++)AddSeriesPaneToChart(i);}int_index= 1;privatevoidbarButtonItem1_ItemClick(objectsender,DevExpress.XtraBars.ItemClickEventArgse){_table.Rows.Add(_index, 0,newRandom(_index).Next(100));_table.Rows.Add(_index, 1,newRandom(_index+ 1).Next(100));_table.Rows.Add(_index, 2,newRandom(_index+ 5).Next(100));_table.Rows.Add(_index, 3,newRandom(_index+ 7).Next(100));_index++;}publicvoidAddSeriesPaneToChart(intindex){Seriesseries=chartControl1.Series[index];XYDiagramSeriesViewBaseview=(XYDiagramSeriesViewBase)series.View;XYDiagramdiag=chartControl1.DiagramasXYDiagram;intaxesPosition=diag.SecondaryAxesY.Add(newSecondaryAxisY());if(index> 0){XYDiagramPanepane=newXYDiagramPane();pane.SizeMode=PaneSizeMode.UseWeight;diag.Panes.Add(pane);diag.SecondaryAxesY[axesPosition].Alignment=AxisAlignment.Near;diag.SecondaryAxesY[axesPosition].GridLines.Visible=true;view.AxisY=diag.SecondaryAxesY[axesPosition];view.Pane=pane;}else{diag.SecondaryAxesY[index].Visibility=DevExpress.Utils.DefaultBoolean.False;view.AxisX.Label.Angle= 90;}}}}

How to implement a custom LookUpEdit supporting Server Mode

$
0
0

This example demonstrates how to create a custom editor that supports server mode data sources in versions where this functionality is not supported out of the box.

Important:
- Starting with version 15.2ComboBoxEdit, LookUpEdit, and ListBoxEdit support synchronous server mode data sources out of the box. You can continue using the editor from this example if it is necessary to use asynchronous (Instant Feedback) data sources.
- The PopupBaseEdit descendant demonstrated in this example uses non-documented methods intended for internal use. Thus, the implementation can be different in different DevExpress versions. This example contains projects for multiple major releases - please make sure that you have chosen the correct version before downloading the project.

Question Comments

Added By: Andrew Thornton at: 7/19/2013 10:32:51 AM    

Hi,

Just upgraded to 13.1.5, and this no longer compiles. Quite a few undocumented things looked to have changed.
Can we have a 13.4/5 version that works please?

Thanks.

Added By: Justin Zeng at: 4/17/2014 4:32:51 AM    

It seems many problem, can this function to be support in new version ?

Added By: Ivan (DevExpress Support) at: 4/27/2014 10:42:28 PM    

Hi Justin,

We cannot guarantee that this functionality will be available in the latest version. For now, you can try to extend this example manually. If you face difficulties doing this, do not hesitate to contact us.

Added By: Viktor Faerman at: 5/9/2014 1:57:04 AM    

Hi Alex,

how to implement this custom editor with MVVM?
Thanks, Viktor

Added By: Michael Ch (DevExpress Support) at: 5/9/2014 4:14:02 AM    Hello,

I have created a separate thread for your questions: How to implement a custom editor from the E4560 example with MVVM. Please refer to it for future discussion.

Thanks,
Michael

Added By: David Lemieux at: 8/12/2015 10:09:43 AM    

This probably does the trick for standalone lookup editors, but I have doubts about using this inside a grid. If my understanding of both the code below and the grid's mechanics is correct, a query will be issued for each and every cell for which such an editor is present. Therefore, if you have 20 records on screen with five columns each having such an editor, that's a hundred of connections opening, querying and closing right there. And EVEN with just ONE column, it will still be under-performing when it will be sorted, grouped or filtered. Even for the non-virtualized rows.

This needs a proper solution. Urgently.

Added By: Ivan (DevExpress Support) at: 8/13/2015 3:01:37 AM    

David, you are correct. The editor we implemented in this example is not designed to be used inside GridControl. With the current implementation, a new source/context will be created for each visible grid cell. Please refer to my comment in the LookUpEdit - server mode support ticket, where I clarified our plans regarding this feature.

Added By: Alexei Corduneanu 2 at: 9/4/2015 7:27:11 AM    

I'm trying to use this approach together with WcfInstantFeedbackDataSource.
As SelectedItem I'm setting the Item I've saved in the database previously. And I'm having a problem with loading the LookUpEdit value back because I'm getting "Value cannot be converted" error. I guess it's happens because the Item is not present in the datasource.
What should be a correct way to load the value back to this control?

Added By: Ilya (DevExpress Support) at: 9/4/2015 12:30:46 PM    

Hello,

To process your recent post more efficiently, I created a separate ticket on your behalf: T286248: How to modify E4560 so it properly works with a WcfInstantFeedbackDataSource. This ticket is currently in our processing queue. Our team will address it as soon as we have any updates.

Added By: Alexei Corduneanu 2 at: 10/6/2015 7:57:35 AM    

How could I achieve multiple selection using this control?

Added By: Ilya (DevExpress Support) at: 10/6/2015 11:27:36 AM    

Hi,
I have extracted your inquiry into a separate thread: How to enable multiple row selection in the LookUpEdit implementing Server Mode (E4560). Let's continue the discussion there.

Added By: Billy P at: 10/26/2015 7:40:23 PM    

How can I assign a null value when the text is cleared, like the behavior of AssignNullValueOnClearingEditText for ComboBoxEdit?

Added By: Michael Ch (DevExpress Support) at: 10/26/2015 10:07:05 PM    

Hello,

To process your recent post more efficiently, I created a separate ticket on your behalf: T304633: How to assign a null value when the text is cleared. This ticket is currently in our processing queue. Our team will address it as soon as we can.

Formula Engine - examples of use

$
0
0
This example demonstrates how to use the FormulaEngine class for evaluating worksheet formulas and parsing expressions.
Select a cell and click the Set Context Cell button to specify a cell used to create the ExpressionContext  object. The context cell is highlighted with blue color.
Click Evaluate Predefined Formula to calculate a simple formula SUM(R[-2]C:R[-1]C) by calling the FormulaEngine.Evaluate method with the specified context.
Click Parse and Modify Active Cell Formula to call the FormulaEngine.Parse  method and create an expression tree from the active cell formula. Subsequently a custom Visitor object is used to traverse the tree and increment row indexes which define an area referenced in the formula.
The Switch R1C1 button can be used to change worksheet reference style if required to correctly interpret formula references.
To calculate formula contained in the active cell using different ExpressionStyle settings, click Evaluate Cell Formula. When executed for the ROW(R2:R11) formula, the Normal expression style setting returns 1, the first row number, and the Array expression style returns an array of row numbers.

CustomFieldSort - How to sort field values by invisible data column values

$
0
0

This example shows how to sort column or row area fields by invisible data column values via the PivotGridControl.CustomFieldSort event. There are two columns in the project: Month and Order. The first column is visible and contains month names. Without custom sorting, they're shown in the wrong, alphabetical order: April, February, January, March. With custom sorting applied, their order is correct.

Question Comments

Added By: Simon Lee 10 at: 1/29/2014 7:40:24 AM    

Hey, According what you've said.I've successfully solved the problem.
Much appreciate it.

Added By: Matthew Graves at: 5/9/2016 4:01:42 AM    Hi. This example works perfectly for sorting within the pivot grid, but I get errors when I try to filter by a custom-sorted field. When opening the filter popup, the ListSourceRowIndex properties come through as -1, so you cannot obtain the value of invisible field used for sorting. How can the example be modified to work for both the grid and within the filter popup?
Viewing all 7205 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>