@boikom
@boikom
Forum Replies Created
-
AuthorPosts
-
admin
KeymasterHi Oliver,
The property is called SummaryRow and each column has Summary property.
Example how to use it:
@page "/grid" @using Smart.Blazor.Demos.Data @inject WeatherForecastService ForecastService <Example Name="Grid"> <h1>Weather forecast</h1> <p>This component demonstrates fetching data from a service.</p> @if (forecasts == null) { <p><em>Loading...</em></p> } else { <Grid OnReady="GridReady" SummaryRow="summary" Sorting="@sorting" Appearance="@appearance" Selection="@selection" Style="width: 80%;"> <Columns> <Column DataField="Date" Label="Date"></Column> <Column DataField="TemperatureC" Label="TemperatureC"></Column> <Column DataField="TemperatureF" Label="TemperatureF"></Column> <Column Summary="@columnSummary" DataField="Summary" Label="Summary"></Column> </Columns> <Rows> @foreach (var forecast in forecasts) { <Row> <Cell Content="@forecast.Date.ToShortDateString()"></Cell> <Cell Content="@forecast.TemperatureC"></Cell> <Cell Content="@forecast.TemperatureF"></Cell> <Cell Content="@forecast.Summary"></Cell> </Row> } </Rows> </Grid> } </Example> @code { string[] columnSummary = new string[] { "count" }; GridSummaryRow summary = new GridSummaryRow() { Visible = true }; GridSorting sorting = new GridSorting() { Enabled = true }; GridAppearance appearance = new GridAppearance() { AlternationCount = 2 }; GridSelection selection = new GridSelection() { Enabled = true, Mode = GridSelectionMode.Many, CheckBoxes = new GridSelectionCheckBoxes() { Enabled = true } }; void GridReady(Grid grid) { var rows = grid.Rows; grid.SelectRows(new int[] { 0, 1, 2 }); } private WeatherForecast[] forecasts; protected override async Task OnInitializedAsync() { forecasts = await ForecastService.GetForecastAsync(DateTime.Now); } }
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Oliver,
SelectRows expects an array of Row ids. The method’s description is Selects multiple rows by their ids. It will not work with row objects i.e. passing List
will not work, passing the IDs in a List would be ok. Example how to use SelectRows
@page "/grid" @using Smart.Blazor.Demos.Data @inject WeatherForecastService ForecastService <Example Name="Grid"> <h1>Weather forecast</h1> <p>This component demonstrates fetching data from a service.</p> @if (forecasts == null) { <p><em>Loading...</em></p> } else { <Grid OnReady="GridReady" SummaryRow="summary" Sorting="@sorting" Appearance="@appearance" Selection="@selection" Style="width: 80%;"> <Columns> <Column DataField="Date" Label="Date"></Column> <Column DataField="TemperatureC" Label="TemperatureC"></Column> <Column DataField="TemperatureF" Label="TemperatureF"></Column> <Column Summary="@columnSummary" DataField="Summary" Label="Summary"></Column> </Columns> <Rows> @foreach (var forecast in forecasts) { <Row> <Cell Content="@forecast.Date.ToShortDateString()"></Cell> <Cell Content="@forecast.TemperatureC"></Cell> <Cell Content="@forecast.TemperatureF"></Cell> <Cell Content="@forecast.Summary"></Cell> </Row> } </Rows> </Grid> } </Example> @code { string[] columnSummary = new string[] { "count" }; GridSummaryRow summary = new GridSummaryRow() { Visible = true }; GridSorting sorting = new GridSorting() { Enabled = true }; GridAppearance appearance = new GridAppearance() { AlternationCount = 2 }; GridSelection selection = new GridSelection() { Enabled = true, Mode = GridSelectionMode.Many, CheckBoxes = new GridSelectionCheckBoxes() { Enabled = true } }; void GridReady(Grid grid) { var rows = grid.Rows; grid.SelectRows(new int[] { 0, 1, 2 }); } private WeatherForecast[] forecasts; protected override async Task OnInitializedAsync() { forecasts = await ForecastService.GetForecastAsync(DateTime.Now); } }
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Àngel,
We resolved the reported issue in the today’s smart-webcomponents-angular build. You can update your version.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi mastercs999,
There is an issue with the ClassName and CellsClassName properties. We will do our best to resolve it for the next patch release of Smart.Blazor.
You can use the following as a workaround:
smart-grid-column[data-field="FirstName"] { // your CSS goes here. }
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi oliver.aldrian,
We tested this and we confirm that this is a bug. We will add a work item for this and it will be resolved in the next version of the blazor grid.
Thanks for the feedback!
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/May 12, 2022 at 12:03 am in reply to: Query Builder Property field dropdown showing only top 8 results when searching #103221admin
KeymasterHi Pavan,
The query builder uses smart-input internally. In smart-input, the auto-complete logic displays results matching a query and the maximum number of items is determined by the smart-input’s items property which defaults to 8. If you want to change the behavior of the query builder, you can make queryBuilder.querySelectorAll(‘smart-input’), loop through the found elements and update the “items” property to a value which you need.
Hope this helps.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Angel,
I checked our support mail and could not find an email by you. If it is more convenient, you can also share a small stackblitz example which uses dummy data and just shows an issue. That will be enough for us.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Ali,
Multi column header is demonstrated in our Grid Overview example – https://www.htmlelements.com/blazor/blazor-ui/demos/blazor-grid?id=overview
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Oleg,
The reported issues are already resolved in the current version.
Example:
function GetData() { const data = new Array(); const generatekey = function () { const S4 = function () { return (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1); }; return (S4() + S4() + "-" + S4() + "-" + S4() + "-" + S4() + "-" + S4() + S4() + S4()); }; for (let i = 0; i < 100; i++) { const row = {}; const tasks = ["Shopping", "Housewares", "Kitchen supplies", "Groceries", "Cleaning supplies", "Office supplies", "Remodeling", "Paint bedroom", "Paint wall", "Fitness", "Decorate living room", "Fix lights", "Fix front door", "Clean kitchen"]; const firstNames = [ "Andrew", "Nancy", "Shelley", "Regina", "Yoshi", "Antoni", "Mayumi", "Ian", "Peter", "Lars", "Petra", "Martin", "Sven", "Elio", "Beate", "Cheryl", "Michael", "Guylene" ]; const lastNames = [ "Fuller", "Davolio", "Burke", "Murphy", "Nagase", "Saavedra", "Ohno", "Devling", "Wilson", "Peterson", "Winkler", "Bein", "Petersen", "Rossi", "Vileid", "Saylor", "Bjorn", "Nodier" ]; const taskindex = Math.floor(Math.random() * tasks.length); row["id"] = generatekey(); row["firstname"] = firstNames[Math.floor(Math.random() * firstNames.length)]; row["lastname"] = lastNames[Math.floor(Math.random() * lastNames.length)]; row["name"] = row["firstname"] + " " + row["lastname"]; row["task"] = tasks[taskindex]; row["duration"] = 1 + Math.floor(Math.random() * 10); data.push(row); } return data; } Smart('#grid', class { get properties() { return { dataSource: new Smart.DataAdapter({ virtualDataSourceLength: 20, virtualDataSourceCache: true, virtualDataSourceOnExpand: function (resultCallbackFunction, details) { setTimeout(function () { const data = GetData().slice(0, 3); if (details.row.level === 1) { for (let i = 0; i < data.length; i++) { data[i].leaf = true; } resultCallbackFunction({ dataSource: data }); } else { resultCallbackFunction({ dataSource: data }); } }, 300); }, virtualDataSource: function (resultCallbackFunction, details) { setTimeout(function () { resultCallbackFunction({ dataSource: GetData().slice(0, 20) }); }, 300); }, id: 'id', dataFields: [ 'id: string', 'name: string', 'duration: number', 'task: string' ] }), layout: { rowHeight: 'auto', allowCellsWrap: true }, behavior: { columnResizeMode: 'growAndShrink' }, columns: [ { label: 'Task', dataField: "task", align: 'center', width: 300 }, { label: 'Person Name', dataField: "name", cellsAlign: 'center', align: 'center', width: 300 }, { label: 'Duration', dataField: "duration", cellsAlign: 'center', align: 'center', formatFunction: function (row, column, value) { const hour = value > 1 ? " hours" : " hour"; return value + hour; } } ] }; } });
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Dark Beccio,
Thanks, we will take a look. Grazie.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Angel,
Could you share stackblitz sample as it seems you’re using a combination of components like toast, grid, dropdownlist and it is not easy to reproduce this?
For example, you can modify and share this sample https://stackblitz.com/github/htmlelements/smart-webcomponents-angular/tree/master/demos/dropdownlist/basic/?file=src%2Fapp%2Fapp.component.ts
Looking forward to your reply.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Joseph,
There is some misunderstanding here. All the code samples are runnable as is. We shared a code sample in codesandbox without errors so we do not understand what is different in our environment and yours. In fact the ListItem has value attribute and all components have theme attribute, too. Sorry to learn that your evaluation is not going well.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi,
Unfortunately, we cannot reproduce this and we will need a complete codepen sample or something similar. Here is our test code based on your last post:
Smart('#grid', class { get properties() { return { sorting: { enabled: true }, editing: { enabled: true, mode: 'row', action: 'none', dialog: { enabled: true }, commandColumn: { visible: true, position: "near", dataSource: { commandColumnMenu: { visible: true }, commandColumnRowMenu: { visible: true } } } }, locale: 'de', selection: { enabled: false, allowRowSelection: false, checkBoxes: { enabled: true } }, filtering: { enabled: true }, behavior: { allowColumnReorder: true }, onCommand: function (args) { if (args.name === "commandColumnRowMenuCommand") { const row = args.details; const menu = document.getElementById("grid"); args.event.preventDefault(); let contextMenuGridOpenedOn = args.details; window.numOrdine = contextMenuGridOpenedOn.data.NumeroOrdine; menu.open(args.event.pageX - 30, args.event.pageY - 80); args.handled = true; } }, dataSource: [], columns: [ { label: 'First Name', dataField: 'firstName', filterMenuMode: 'excel' }, { label: 'Last Name', dataField: 'lastName' }, { label: 'Date', dataField: 'date', align: 'right', cellsAlign: 'right', }, { label: 'Product', dataField: 'productName' }, { label: 'Quantity', dataField: 'quantity', align: 'right', cellsAlign: 'right', } ] } } });
No errors in the console. The grid displays with columns and empty data source.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Joseph,
Online example using the provided code and the current version of Smart UI for React: https://codesandbox.io/s/happy-resonance-tt2vek?file=/src/App.js
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/admin
KeymasterHi Joseph,
How do you use these components? The sample code is available in the download package and does not produce such errors.
Best regards,
Peter StoevSmart UI Team
https://www.htmlelements.com/ -
AuthorPosts