【发布时间】:2016-10-27 20:23:06
【问题描述】:
我刚开始使用 DevExpress 使用 ASP MVC,我已经创建了内部包含 GridViews 的视图,并且我在局部视图中进行了设置。
短篇小说
我需要将 GridViewSettings 对象放在控制器而不是视图中。 为什么?因为应用程序需要下载网格的 Excel 文件,所以到目前为止这是我见过的唯一方法。但问题是,控制器中的网格设置不允许我在未绑定的列中指定标签。
代码如下:
public GridViewSettings MyGridSettings()
{
var settings = new GridViewSettings();
settings.Name = "MyGrid";
settings.CommandColumn.Visible = true;
settings.KeyFieldName = "PERSON_ID";
settings.SettingsPager.Visible = true;
settings.Settings.ShowGroupPanel = true;
settings.Settings.ShowFilterRow = true;
settings.SettingsBehavior.AllowSelectByRowClick = true;
settings.SettingsAdaptivity.AdaptivityMode = GridViewAdaptivityMode.HideDataCellsWindowLimit;
settings.SettingsAdaptivity.AdaptiveColumnPosition = GridViewAdaptiveColumnPosition.Right;
settings.SettingsAdaptivity.AdaptiveDetailColumnCount = 1;
settings.SettingsAdaptivity.AllowOnlyOneAdaptiveDetailExpanded = false;
settings.SettingsAdaptivity.HideDataCellsAtWindowInnerWidth = 0;
settings.Columns.Add("PERSON_ID", "Person ID");
settings.Columns.Add(col =>
{
col.Caption = "Department";
col.SetDataItemTemplateContent(dataTemplate =>
{
String DepartmenID = (String)DataBinder.Eval(dataTemplate.DataItem, "DEPARTMENT_ID");
//if (DepartmenID != null)
//{
// Html.DevExpress().Label(label =>
// {
// label.Text = String.Format("{0}",
// DataBinder.Eval(dataTemplate.DataItem, "DEPARTMENT.NAME"));
// }).Render();
// }
}
}
}
小问题
如何从控制器访问以下代码?
Html.DevExpress().Label(label =>
{
label.Text = String.Format("{0}",
DataBinder.Eval(dataTemplate.DataItem, "DEPARTMENT.NAME"));
}).Render();
就像我说的那样,我需要这样做,因为 Excel 文件下载。不过,如果您有任何我不需要这样做的解决方法,那就太好了
【问题讨论】:
标签: asp.net-mvc devexpress devexpress-mvc