Как использовать тег выбора в сетке Kendo UI в ASP.NET MVC 5? - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь использовать Kendo UI впервые, я хочу создать Kendo UI, в котором есть список некоторых ролей для пользователей. Поэтому мне нужно иметь строку с UserName и ... список ролей. Но я не делаю знать, как создать этот ряд! это моя пользовательская модель:

       public class UserViewModel
   {

      public string password { get; set; }
      public string ConfirmPassword { get; set; }
      public string UserName { get; set; }
      public List<IdentityRole> Roles { get; set; }
  }

и это пользовательский сервис:

   private ApplicationDbContext db = new ApplicationDbContext();



       private IList<UserViewModel> GetAll()
    {
        var allusers = HttpContext.Current.Session["AllCountries"] as 
         IList<UserViewModel>;
        if (allusers == null)
        {
            allusers = db.Users.Select(s => new UserViewModel
            {

                UserName = s.UserName,

            }).ToList();

            HttpContext.Current.Session["AllPerson"] = allusers;
        }

        return allusers;
    }

    public IEnumerable<UserViewModel> Read()
    {
        return GetAll();
    }

    public void Create(UserViewModel myuser)
    {
        var store = new UserStore<ApplicationUser>(db);
        var manager = new ApplicationUserManager(store);
        var CustomEmail = new Guid().ToString() + "@gmail.com";
        manager.Create(new ApplicationUser
        {
            Id = new Guid().ToString(),
            UserName = myuser.UserName,
            Email = CustomEmail

        }, myuser.password);
        db.SaveChanges();
    }

    public void Update(UserViewModel vwusers)
    {
        if (vwusers.UserName!=null)
        {
            var store = new UserStore<ApplicationUser>(db);
            var manager = new ApplicationUserManager(store);
            var objCountry = manager.FindByName(vwusers.UserName);
            if (objCountry != null)
            {
                objCountry.UserName = vwusers.UserName;

                db.Entry(objCountry).State = 
      System.Data.Entity.EntityState.Modified;
                db.SaveChanges();
            }
        }
    }

и мой взгляд: ...

  @(Html.Kendo().Grid<UserViewModel>()
        .Name("Grid").Sortable()
        .Filterable(ftb => ftb.Mode(GridFilterMode.Row))
        .Columns(col =>
        {
            col.Bound(x => x.UserName).Filterable(ftb => ftb.Cell(cell => 
  cell.Operator("contains").SuggestionOperator(FilterType.Contains)));
            col.Bound(x => x.password).Visible(false);
            col.Bound(x => x.ConfirmPassword).Visible(false);

            col.Command(e => e.Edit().Text("Edit"));
            col.Command(e => e.Destroy().Text("Delete"));
        })

        .Editable(editable => editable.Mode(GridEditMode.PopUp))
        .ToolBar(s => s.Create().Text("AddCountry"))
        .Pageable(page => 
   page.Refresh(true).PageSizes(true).ButtonCount(5))
        .ClientDetailTemplateId("Test")

    .DataSource(ds =>
        ds.Ajax()
        .Model(m => {
            m.Id(a => a.UserName);
            m.Field(p => p.Roles).DefaultValue(new List<IdentityRole>());

        })
        .PageSize(10)
        .Events(events => events.Error("error_handler"))
        .Read(r => r.Action("ReadMasters", "User"))
        .Create(c => c.Action("AddNewMaster", "User").Type(HttpVerbs.Post))
        .Update(c => c.Action("UpdateMaster", "User"))
        .Destroy(c => c.Action("DeleteMaster", "User"))
   )
  .Events(e => e.DataBound("dataBound"))
 )

но я не знаю, как отобразить роли в виде списка для создания и обновления! Заранее спасибо за помощь

...