Невозможно добавить строку в SFGrid, когда таблица базы данных пуста

У меня есть SfGrid, который не позволяет мне добавлять новые строки (кнопка добавления отображается как нажатая, но не отображает строку ввода), если таблица базы данных пуста. Никаких ошибок не выкидывается. Если я вручную вставляю строку в SSMS(где находится моя база данных), строка отображается, и я могу добавлять новые строки в обычном режиме (все работает). Я использую Syncfusion для своего проекта Blazor-WebAssembly .

Здесь SfGrid компонент на моей странице бритвы:

      <SfGrid TValue="Note" Toolbar="@(new List<string>() { "Add", "Edit", "Update", "Cancel" })">
    <GridEvents OnActionBegin="OnBeginHandler" CommandClicked="@CommandClickHandler" TValue="Note"></GridEvents>
    <SfDataManager Url="/api/Notes" Adaptor="Adaptors.WebApiAdaptor"></SfDataManager>
    <GridEditSettings AllowAdding="true" AllowEditing="true" AllowDeleting="true"></GridEditSettings>
    <GridColumns>
        <GridColumn Field="@nameof(Note.NoteId)" IsPrimaryKey="true" Visible="false"></GridColumn>
        <GridColumn Field="@nameof(Note.Name)" ValidationRules="@(new ValidationRules(){Required=true})"></GridColumn>
        <GridColumn>
            <GridCommandColumns>
                <GridCommandColumn Type="CommandButtonType.Delete" ButtonOption="@(new CommandButtonOptions() { IconCss = "e-icons e-delete", CssClass = "e-flat" })"></GridCommandColumn>
            </GridCommandColumns>
        </GridColumn>
    </GridColumns>
</SfGrid> 

И @code часть страницы:

      private void OnBeginHandler(ActionEventArgs<Note> args)
{
    if (args.RequestType == Syncfusion.Blazor.Grids.Action.Save)
    {
        if (args.Action == "add")
        {
            var t = args.Data;
        }
    }
}

public void CommandClickHandler(CommandClickEventArgs<Note> args)
{
    if (args.CommandColumn.Type != CommandButtonType.Save)
        return;

    var lookup = args.RowData;

    StateHasChanged();
}

И наконец, NotesController :

      [Route("api/[controller]")]
[ApiController]
public class NotesController : ControllerBase
{
    private readonly OrganizatorContext _context;
    public NotesController(OrganizatorContext context)
    {
        _context = context;
    }

    // GET: api/<NotesController>
    [HttpGet]
    public object Get()
    {
        return new { Items = _context.Notes, Count = _context.Notes.Count() };
    }
    // GET api/<NotesController>/5

    [HttpGet("{id}")]
    public object Get(long id)
    {
        return new { Items = _context.Notes.Where(x => x.NoteId.Equals(id)).FirstOrDefault(), Count = _context.Notes.Count() };
    }

    // POST api/<NotesController>
    [HttpPost]
    public void Post([FromBody] Note note)
    {
        _context.Notes.Add(note);
        _context.SaveChanges();
    }

    // PUT api/<NotesController>/5
    [HttpPut("{id}")]
    public void Put(long id, [FromBody] Note note)
    {
        Note note1 = _context.Notes.Where(x => x.NoteId.Equals(note.NoteId)).FirstOrDefault();
        note1.Name = note.Name;
        note1.IsDone = note.IsDone;
        note1.Due = note.Due;
        _context.SaveChanges();
    }

    // DELETE api/<NotesController>/5
    [HttpDelete("{id}")]
    public void Delete(long id)
    {
        Note note1 = _context.Notes.Where(x => x.NoteId.Equals(id)).FirstOrDefault();
        _context.Notes.Remove(note1);
        _context.SaveChanges();
    }
}

2 ответа

Решение

Мы также можем воспроизвести проблему, о которой было сообщено, на нашей стороне. Мы подтвердили это как ошибку и зарегистрировали отчет о дефекте « Невозможно добавить строку в SFGrid, когда таблица базы данных пуста » для этого же. Спасибо, что нашли время сообщить об этой проблеме и помогли нам улучшить наш продукт. В Syncfusion мы стремимся исправить все подтвержденные дефекты (в зависимости от технологической осуществимости и жизненного цикла разработки продукта) и включить исправление дефектов в наш выпуск, который, как ожидается, будет выпущен к концу апреля 2021 года. Пожалуйста, следите за нашей страницей Syncfusion для получения информации о выпуске.

Мы рады сообщить, что наш последний выпуск (19.1.0.65) успешно выпущен. Мы включили исправление для проблемы «Невозможно добавить строку в SFGrid, когда таблица базы данных пуста». Пожалуйста, обновите свой NuGet (Syncfusion.Blazor) до последней версии, чтобы решить ваши проблемы.

Пожалуйста, найдите пакет Nuget ниже https://www.nuget.org/packages/Syncfusion.Blazor/

Другие вопросы по тегам