Код: Выделить всё
Edit Columns
[i][/i] Close
[i][/i] Change
Код: Выделить всё
DualListboxКод: Выделить всё
@typeparam TValue
@inherits InputBase
@if (ReportColumns != null)
{
@foreach (var column in ReportColumns.OrderBy(c => c.Sort))
{
if (column.IsChecked == 1)
{
@column.Title
}
else
{
@column.Title
}
}
}
Код: Выделить всё
DualListboxКод: Выделить всё
using Project.Models;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Forms;
using Microsoft.JSInterop;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Threading.Tasks;
namespace Project.Components
{
public partial class DualListbox : InputBase
{
[Parameter] public string Id { get; set; }
[Inject] IJSRuntime JSRuntime { get; set; }
[Parameter] public ICollection ReportColumns { get; set; }
public DotNetObjectReference DotNetRef;
[Parameter] public EventCallback OnChanged { get; set; }
protected override bool TryParseValueFromString(string value, out TValue result, out string validationErrorMessage)
{
try
{
if (value == "null")
{
value = null;
}
if (typeof(TValue) == typeof(string))
{
result = (TValue)(object)value;
validationErrorMessage = null;
return true;
}
else if (typeof(TValue) == typeof(int) || typeof(TValue) == typeof(int?))
{
int.TryParse(value, NumberStyles.Integer, CultureInfo.InvariantCulture, out var parsedValue);
result = (TValue)(object)parsedValue;
validationErrorMessage = null;
return true;
}
throw new InvalidOperationException($"{GetType()} does not support the type '{typeof(TValue)}'.");
}
catch (Exception ex)
{
throw ex;
}
}
protected override void OnInitialized()
{
base.OnInitialized();
DotNetRef = DotNetObjectReference.Create(this);
}
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (firstRender)
{
await JSRuntime.InvokeVoidAsync("dualListboxComponent.init", Id, DotNetRef, "Change_SelectWithFilterBase");
}
}
[JSInvokable("Change_SelectWithFilterBase")]
public void Change(string value)
{
try
{
if (value == "null")
{
value = null;
}
var array = value.Split("#");
if (array[0] == "add")
{
int _value = int.Parse(array[1]);
var report = ReportColumns.Where(c => c.Id == _value).FirstOrDefault();
report.IsChecked = 1;
}
else
{
int _value = int.Parse(array[1]);
var report = ReportColumns.Where(c => c.Id == _value).FirstOrDefault();
report.IsChecked = 0;
}
}
catch (Exception ex)
{
throw ex;
}
if (OnChanged.HasDelegate)
OnChanged.InvokeAsync(value);
}
}
}
e.log @ blazor.server.js:15 blazor.server.js:8 Uncaught (в обещании)
Ошибка типа: невозможно прочитать свойство 'insertBefore' со значением null
в Object.s [as InsertLogicalChild] (blazor.server.js:8)
в e.insertText (blazor.server.js:8)
в e.insertFrame (blazor.server.js:8)
в e.applyEdits (blazor.server.js:8)
в e.updateComponent (blazor.server.js:8)
в Object.t.renderBatch (blazor.server.js:1)
в e. (blazor.server.js:15)
в blazor.server.js:15
в Object.next (blazor.server.js:15)
в blazor.server.js:15 blazor.server.js:15 [2020-02-12T07:42:28.926Z] Ошибка: System.AggregateException: произошла одна или
несколько ошибок. (TypeError: невозможно прочитать свойство 'insertBefore'
со значением null) ---> System.InvalidOperationException: TypeError: невозможно
прочитать свойство 'insertBefore' со значением null в
Microsoft.AspNetCore.Components.RenderTree.Renderer.InvokeRenderCompletedCallsAfterUpdateDisplayTask(Task
updateDisplayTask, Int32[] updateComponents) --- Конец внутренней
трассировки стека исключений ---
Подробнее здесь: https://stackoverflow.com/questions/601 ... t-e-as-rem
Мобильная версия