Retrieve values ​​from an element in a gridview in MVC C # when generated

Good afternoon:

I got this code to create gridview in MVC 4;

@{SATXmlReports.Models.User spp = new SATXmlReports.Models.User();
           var grid = new WebGrid(ViewData["GridUserData"] as IEnumerable<SATXmlReports.Models.User>, canPage: true, canSort: true, rowsPerPage: 10, selectionFieldName: "selectedRow", ajaxUpdateContainerId: "gridContent");
          }
          <div id="gridContent" >
          @grid.GetHtml(
                        tableStyle: "table table-hover",
                        columns: grid.Columns(
                        grid.Column("Name", format: (item) => item.GetSelectLink(item.Name.ToString())),
                        grid.Column("Rol","Rol"),
                                 grid.Column("User Sites", "UserSites", format: item => Html.DropDownList("Sites", SATXmlReports.Models.User.GetUserSites(item.Name.ToString()).Select(u => new SelectListItem { Text = u.Description, Value = u.Number }))
                                 )))

But I get this error:

Error 11 The best overloaded method match for 'System.Web.Helpers.WebGrid.Column (string, string, System.Func, string, bool)' has some invalid arguments c: \ Users \ fernando.martinez \ Desktop \ SATXmlReports \ SATXmlReports \ Views \ Configuracion \ UserSettings.cshtml 109 38 SATXmlReports

and

Error 12 Argument 3: cannot be converted from the lambda expression 'System.Func' c: \ Users \ fernando.martinez \ Desktop \ SATXmlReports \ SATXmlReports \ Views \ Configuracion \ UserSettings.cshtml 109 83 SATXmlReports

I tried everything to get the properties of the element, but I fail. This method works, but is hard-coded:

grid.Column("User Sites", "UserSites", format: item => Html.DropDownList("Sites", SATXmlReports.Models.User.GetUserSites("John.Burdon").Select(u => new SelectListItem { Text = u.Description, Value = u.Number }))

Any suggestions?

+4
1

(item).

:

grid.Column("User Sites", "UserSites", format: item => Html.DropDownList("Sites", SATXmlReports.Models.User.GetUserSites((string)item.Name).Select(u => new SelectListItem { Text = u.Description, Value = u.Number }))
0

Source: https://habr.com/ru/post/1589259/


All Articles