0

私はグリッドの3列があります。MVC 3 telerikグリッド編集モード

-Name -Roles

-email私のRolesカラムはdropdownlistとして必要です。これはページロード時に既に編集可能なので(Edit/Updateボタンやものは必要ありません)、管理者がドロップダウンリストで選択したアイテムを変更すると、ユーザのロールが更新されます。

どうすればいいですか?

ビュー

@model IEnumerable<UserViewModel> 
    @(Html.Telerik().Grid(Model) 
      .Name("Grid").TableHtmlAttributes(new { width="800"}) 
      .Columns(columns => 
      { 
       //if (userIsInWhateverRole){ 
       // columns.Template(o => Html.Action(GenerateYourLinkStuffHere)); 
       //} 
       columns.Bound(o => o.Name).Width(150); 
       columns.Bound(o => o.Email).Width(120); 
       columns.Bound(o => o.Roles).Width(120); 
      }) 
      .Sortable() 
      .Scrollable() 
      .Groupable() 
      .Filterable() 
      .Pageable(paging => 
       paging.PageSize(5) 
        ) 
         ) 

のViewModel

public class UserViewModel 
{ 

    public int Id { get; set; } 

    [Microsoft.Build.Framework.Required] 
    [Display(Name = "User name")] 
    public string Name { get; set; } 

    [Required] 
    [DataType(DataType.Password)] 
    [Display(Name = "Password")] 
    public string Password { get; set; } 

    public string[] Roles { get; set; } 

    public string Email { get; set; } 

    public bool Admin { get; set; } 

} 

コントロール

public ActionResult ManageRoles() 
{ 
    var users = Membership.GetAllUsers().Cast<MembershipUser>().Select(x=> new UserViewModel{ Name = x.UserName, Email = x.Email, Roles = Roles.GetAllRoles()}); 

    return View(users); 
} 

答えて

2

あなたはテンプレート列を使用して、ドロップダウンリストとしてテンプレートを定義する必要があります。

@(Html.Telerik().Grid(Model) 
    .Name("Grid").TableHtmlAttributes(new { width="800"}) 
    .Columns(columns => 
    { 
     //if (userIsInWhateverRole){ 
     // columns.Template(o => Html.Action(GenerateYourLinkStuffHere)); 
     //} 
     columns.Bound(o => o.Name).Width(150); 
     columns.Bound(o => o.Email).Width(120); 
     columns.Template (
      @<text> 
       @Html.DropDownList("Roles", new SelectList(item.Roles)) 
      </text> 
     ).Width(120); 
    }) 
    .Sortable() 
    .Scrollable() 
    .Groupable() 
    .Filterable() 
    .Pageable(paging => paging.PageSize(5)) 
) 

私はコードをテストすることはできないんだけど、それは非常に近いはず。

+0

は魅力的な働きをしました! – Timsen

0

あなたはすべてのアイテムが欲しいですグリッド内で編集可能にするには?テキストボックスをレンダリングする列のテンプレートを使用するだけです。このデモを参照してください:http://demos.telerik.com/aspnet-mvc/grid/templatesserverside

+0

私の役割の列だけを編集できるようにしたいが、その列の項目をドロップダウンリストとして表示する必要があります – Timsen

関連する問題