I work on asp.net core blazer server side .I face issue I can't export ridzen data grid to excel after filter data on it .
so when page load list of Data source of ridzen data grid 10 so after this write any filter to any column then become 4 so when press
button export to excel it export 10 rows but correct must be 4 rows
so How to export ridzen data grid to excel after filter ridzen datat grid
private async Task ExportToExcel()
{
ExceldatabaseData = databaseData.Select(p => new CopyExcelDatabaseClass
{
DBID = p.dbid,
DBName = p.databaseName,
ServerID = p.serverID,
ServerName = p.serverName,
Severity = p.serverity,
BackupProcedure = p.backUpProcedure,
Remarks = p.remarks,
OwnerFileNo = p.ownerfilenumber,
OwnerFileName = p.ownerfilename,
IsActive = p.isActive
}).ToList();
ExcelPackage.LicenseContext = LicenseContext.Commercial;
var stream = new MemoryStream();
using (var package = new ExcelPackage(stream))
{
var worksheet = package.Workbook.Worksheets.Add("DatabaseList");
//worksheet.Cells.LoadFromCollection(databaseData, true);
worksheet.Cells.LoadFromCollection(ExceldatabaseData, true);
package.Save();
}
var buffer = stream.ToArray();
var fileName = $"Database_{DateTime.Now:yyyyMMddHHmmss}.xlsx";
await JS.InvokeAsync<object>("saveAsFile", fileName, Convert.ToBase64String(buffer));
}
public class CopyExcelDatabaseClass
{
[DisplayName("DB ID")]
public int DBID { get; set; }
[DisplayName("DB Name")]
public string DBName { get; set; }
[DisplayName("Server ID")]
public int ServerID { get; set; }
[DisplayName("Server Name")]
public string ServerName { get; set; }
public string Severity { get; set; }
[DisplayName("Backup Procedure")]
public string BackupProcedure { get; set; }
public string Remarks { get; set; }
[DisplayName("Owner File No")]
public string OwnerFileNo { get; set; }
[DisplayName("Owner File Name")]
public string OwnerFileName { get; set; }
[DisplayName("Is Active")]
public bool IsActive { get; set; }
}
private async Task RefreshList()
{
var request = "Database/GetAllDatabaseDetails";
var response = await client.SendAsync(request);
using var responsestream = await response.Content.ReadAsStreamAsync();
databaseData = await JsonSerializer.DeserializeAsync<List<DatabaseClass>>(responsestream);
}
private IEnumerable<DatabaseClass> databaseData = Array.Empty<DatabaseClass>();
protected override async Task OnInitializedAsync()
{
await RefreshList();
}
javascript function
window.saveAsFile = (filename, bytesBase64) => {
const link = document.createElement('a');
link.download = filename;
link = 'data:application/octet-stream;base64,' + bytesBase64;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};