生成时从 MVC C# 中的 gridview 中的项目获取值
Get values from an item in gridview in MVC C# while is generated
美好的一天:
我得到这段代码以在 MVC 4 中生成 gridview;
@{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 }))
)))
但是我得到这个错误:
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
并且:
Error 12 Argument 3: cannot convert from 'lambda expression' to
'System.Func' c:\Users\fernando.martinez\Desktop\SATXmlReports\SATXmlReports\Views\Configuracion\UserSettings.cshtml 109 83 SATXmlReports
我尝试了所有方法来获取项目属性,但都失败了。这种方式有效,但被硬编码:
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 }))
有什么建议吗?
你必须小心使用动态(项目)的扩展方法。
试试这个:
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 }))
美好的一天:
我得到这段代码以在 MVC 4 中生成 gridview;
@{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 }))
)))
但是我得到这个错误:
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
并且:
Error 12 Argument 3: cannot convert from 'lambda expression' to 'System.Func' c:\Users\fernando.martinez\Desktop\SATXmlReports\SATXmlReports\Views\Configuracion\UserSettings.cshtml 109 83 SATXmlReports
我尝试了所有方法来获取项目属性,但都失败了。这种方式有效,但被硬编码:
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 }))
有什么建议吗?
你必须小心使用动态(项目)的扩展方法。
试试这个:
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 }))