Skip to content

Commit 212152c

Browse files
ntachevadimodiyordan-mitev
authored
[4.3.0] docs(filemanager): SelectedItems documentation (#1483)
* docs(filemanager): SelectedItems documentation * Update components/filemanager/events.md Co-authored-by: Dimo Dimov <[email protected]> * Update components/filemanager/selection.md Co-authored-by: Dimo Dimov <[email protected]> * Update components/filemanager/selection.md Co-authored-by: Dimo Dimov <[email protected]> * Update components/filemanager/selection.md Co-authored-by: Yordan <[email protected]> * Update components/filemanager/selection.md Co-authored-by: Yordan <[email protected]> * Update components/filemanager/selection.md Co-authored-by: Yordan <[email protected]> --------- Co-authored-by: Dimo Dimov <[email protected]> Co-authored-by: Yordan <[email protected]>
1 parent 1a3157e commit 212152c

File tree

2 files changed

+441
-18
lines changed

2 files changed

+441
-18
lines changed

components/filemanager/events.md

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ This article explains the events available in the Telerik FileManager for Blazor
2121
* [Other Events](#other-events) - other events the grid provides.
2222
* [OnModelInit](#onmodelinit)
2323
* [OnDownload](#ondownload)
24+
* [SelectedItemsChanged](#selecteditemschanged)
2425

2526
## CUD Events
2627

@@ -328,28 +329,37 @@ The `OnModelInit` event fires when a new instance of the model is about to be cr
328329

329330
The `OnDownload` event fires before a file is to be downloaded, cancellable. Its event handler receives the updated `FileManagerDownloadEventArgs` as an argument. See the [example](#example).
330331

332+
### SelectedItemsChanged
333+
334+
The `SelectedItemChanged` event fires every time the user clicks on a new file/folder in the main pane of the FileManager. You can use it with one-way binding of the `SelectedItems` parameter to respond to user selection.
335+
331336
## Example
332337

333338
>caption Handle FileManager events.
334339
335340
````CSHTML
336341
@using System.IO
337342
338-
<TelerikFileManager Data="@Data"
343+
<TelerikFileManager Data="@Files"
339344
@bind-Path="@DirectoryPath"
340345
Height="400px"
341346
OnCreate="@OnCreateHandler"
342347
OnUpdate="@OnUpdateHandler"
348+
OnDelete="@OnDeleteHandler"
343349
OnModelInit="@OnModelInitHandler"
344350
OnDownload="@OnDownloadHandler"
345-
OnDelete="@OnDeleteHandler">
351+
SelectedItems="@SelectedItems"
352+
SelectedItemsChanged="@((IEnumerable<FlatFileEntry> selectedFiles) => OnSelect(selectedFiles))">
346353
</TelerikFileManager>
347354
348355
@code {
349-
public List<FlatFileEntry> Data = new List<FlatFileEntry>();
350-
public string DirectoryPath { get; set; } = string.Empty;
356+
private List<FlatFileEntry> Files = new List<FlatFileEntry>();
357+
358+
private string DirectoryPath { get; set; } = string.Empty;
351359
352-
async Task OnCreateHandler(FileManagerCreateEventArgs args)
360+
private IEnumerable<FlatFileEntry> SelectedItems { get; set; } = new List<FlatFileEntry>();
361+
362+
private async Task OnCreateHandler(FileManagerCreateEventArgs args)
353363
{
354364
var newFolder = args.Item as FlatFileEntry;
355365
@@ -373,35 +383,35 @@ The `OnDownload` event fires before a file is to be downloaded, cancellable. Its
373383
{
374384
// simulate add in file system
375385
newFolder.ParentId = parentDirectory.Id;
376-
Data.Add(newFolder);
377-
parentDirectory.HasDirectories = Data.Count(x => x.ParentId == parentDirectory.Id) > 0;
386+
Files.Add(newFolder);
387+
parentDirectory.HasDirectories = Files.Count(x => x.ParentId == parentDirectory.Id) > 0;
378388
}
379389
else
380390
{
381391
// create a folder in the root dir
382-
Data.Add(newFolder);
392+
Files.Add(newFolder);
383393
}
384394
385395
RefreshData();
386396
}
387397
388398
private FlatFileEntry GetDirectory(string path)
389399
{
390-
var directory = Data.FirstOrDefault(x => x.IsDirectory && x.Path == path);
400+
var directory = Files.FirstOrDefault(x => x.IsDirectory && x.Path == path);
391401
392402
return directory;
393403
}
394404
395405
private FlatFileEntry GetParent(FlatFileEntry currItem, string currDirectory)
396406
{
397-
var parentItem = Data
407+
var parentItem = Files
398408
.FirstOrDefault(x => x.IsDirectory && x.Path == currDirectory);
399409
400410
return parentItem;
401411
}
402412
403413
404-
async Task OnUpdateHandler(FileManagerUpdateEventArgs args)
414+
private async Task OnUpdateHandler(FileManagerUpdateEventArgs args)
405415
{
406416
var item = args.Item as FlatFileEntry;
407417
@@ -418,15 +428,15 @@ The `OnDownload` event fires before a file is to be downloaded, cancellable. Its
418428
var fullName = extension.Length > 0 && name.EndsWith(extension) ?
419429
name : $"{name}{extension}";
420430
421-
var updatedItem = Data.FirstOrDefault(x => x.Id == item.Id);
431+
var updatedItem = Files.FirstOrDefault(x => x.Id == item.Id);
422432
423433
updatedItem.Name = item.Name;
424434
updatedItem.Path = Path.Combine(DirectoryPath, fullName);
425435
Console.WriteLine(updatedItem.Path);
426436
}
427437
}
428438
429-
async Task OnDownloadHandler(FileManagerDownloadEventArgs args)
439+
private async Task OnDownloadHandler(FileManagerDownloadEventArgs args)
430440
{
431441
var selectedItem = args.Item as FlatFileEntry;
432442
@@ -441,13 +451,13 @@ The `OnDownload` event fires before a file is to be downloaded, cancellable. Its
441451
}
442452
443453
444-
async Task OnDeleteHandler(FileManagerDeleteEventArgs args)
454+
private async Task OnDeleteHandler(FileManagerDeleteEventArgs args)
445455
{
446456
var currItem = args.Item as FlatFileEntry;
447457
448-
var itemToDelete = Data.FirstOrDefault(x => x.Id == currItem.Id);
458+
var itemToDelete = Files.FirstOrDefault(x => x.Id == currItem.Id);
449459
450-
Data.Remove(itemToDelete);
460+
Files.Remove(itemToDelete);
451461
452462
RefreshData();
453463
}
@@ -468,15 +478,21 @@ The `OnDownload` event fires before a file is to be downloaded, cancellable. Its
468478
return item;
469479
}
470480
481+
private void OnSelect(IEnumerable<FlatFileEntry> selectedFiles)
482+
{
483+
//update the view-model
484+
SelectedItems = selectedFiles;
485+
}
486+
471487
private void RefreshData()
472488
{
473-
Data = new List<FlatFileEntry>(Data);
489+
Files = new List<FlatFileEntry>(Files);
474490
}
475491
476492
// fetch the FileManager data
477493
protected override async Task OnInitializedAsync()
478494
{
479-
Data = await GetFlatFileEntries();
495+
Files = await GetFlatFileEntries();
480496
}
481497
482498
// a model to bind the FileManager. Should usually be in its own separate location.

0 commit comments

Comments
 (0)