MVC4 .Net 如何在 WebGrid 单元格中放置 DropDown
MVC4 .Net How to place DropDown in WebGrid Cell
我见过很多与这个问题类似的问题,但我还没有遇到一个答案适合我的问题。然而:)
我的模型是这样的:
public class MyModel
{
public List<MyItem> MyItems{get;set;}
public List<SelectListItem> MySet{get;set;}
}
MyItem 看起来像这样:
public class MyItem
{
public int MyItemId
}
我的视图顶部有 @model MyModel
。
我的 WebGrid 看起来像这样:
@{
var grid = new WebGrid( Model.MyItems, canPage: false );
var gridColumns = new List<WebGridColumn>
{
grid.Column(
format: (item) => @Html.DropDownListFor(modelItem => item.MyItemId.ToString(), Model.MySet ) )
};
@grid.GetHtml( "wgtable",
rowStyle: "gridrow",
alternatingRowStyle: "altgridrow",
displayHeader: true,
columns: grid.Columns( gridColumns.ToArray( ) ) )
}
在这种情况下,我得到的错误是 CS1963:表达式树可能不包含动态操作。
我也试过了
format: (item) => @Html.DropDownListFor(item.MyItemId.ToString(), Model.SubPayGroups ) )
这给了我 CS1973:模型没有名为 'DropDownListFor'.
的适用方法
我接近了吗?
我最终放弃了 DropDownListFor,转而使用 DropDownList,还构建了一个 IEnumerable:这是我对该专栏的最终工作解决方案:
grid.Column(
header:"Sub Pay Group",
format: (item) => @Html.DropDownList("MyItemId", Model.MySet.Select( u => new SelectListItem
{
Text = u.Text,
Value = u.Value,
Selected = u.Value == ((WebGridRow)item)["SubPayGroupId"].ToString() }),
它不在我最初的问题定义中,但我还需要设置一个选定的项目。因此,来自 MySet 的附加 Select...
我见过很多与这个问题类似的问题,但我还没有遇到一个答案适合我的问题。然而:)
我的模型是这样的:
public class MyModel
{
public List<MyItem> MyItems{get;set;}
public List<SelectListItem> MySet{get;set;}
}
MyItem 看起来像这样:
public class MyItem
{
public int MyItemId
}
我的视图顶部有 @model MyModel
。
我的 WebGrid 看起来像这样:
@{
var grid = new WebGrid( Model.MyItems, canPage: false );
var gridColumns = new List<WebGridColumn>
{
grid.Column(
format: (item) => @Html.DropDownListFor(modelItem => item.MyItemId.ToString(), Model.MySet ) )
};
@grid.GetHtml( "wgtable",
rowStyle: "gridrow",
alternatingRowStyle: "altgridrow",
displayHeader: true,
columns: grid.Columns( gridColumns.ToArray( ) ) )
}
在这种情况下,我得到的错误是 CS1963:表达式树可能不包含动态操作。
我也试过了
format: (item) => @Html.DropDownListFor(item.MyItemId.ToString(), Model.SubPayGroups ) )
这给了我 CS1973:模型没有名为 'DropDownListFor'.
的适用方法我接近了吗?
我最终放弃了 DropDownListFor,转而使用 DropDownList,还构建了一个 IEnumerable:这是我对该专栏的最终工作解决方案:
grid.Column(
header:"Sub Pay Group",
format: (item) => @Html.DropDownList("MyItemId", Model.MySet.Select( u => new SelectListItem
{
Text = u.Text,
Value = u.Value,
Selected = u.Value == ((WebGridRow)item)["SubPayGroupId"].ToString() }),
它不在我最初的问题定义中,但我还需要设置一个选定的项目。因此,来自 MySet 的附加 Select...