Asp.net mvc ASP MVC DevExpress:Controller中的GridViewSettings而不是View
我刚开始使用DevExpress使用ASP MVC,我已经创建了包含GridView的视图,并且我在部分视图中进行了设置 短篇小说 我需要将GridViewSettings对象放在控制器中,而不是视图中。 为什么?因为应用程序需要下载网格的Excel文件,到目前为止,这是我见过的唯一方法。但问题是,在控制器中设置网格不允许我在未绑定列中指定标签 代码如下:Asp.net mvc ASP MVC DevExpress:Controller中的GridViewSettings而不是View,asp.net-mvc,devexpress,devexpress-mvc,Asp.net Mvc,Devexpress,Devexpress Mvc,我刚开始使用DevExpress使用ASP MVC,我已经创建了包含GridView的视图,并且我在部分视图中进行了设置 短篇小说 我需要将GridViewSettings对象放在控制器中,而不是视图中。 为什么?因为应用程序需要下载网格的Excel文件,到目前为止,这是我见过的唯一方法。但问题是,在控制器中设置网格不允许我在未绑定列中指定标签 代码如下: public GridViewSettings MyGridSettings() { var setting
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文件需要下载。尽管如此,如果您有任何我不需要这样做的变通方法,使用所描述的
HtmlHelper
类(阅读使用HtmlHelper类部分),这可能会解决您的问题:
public GridViewSettings MyGridSettings(this HtmlHelper html)
{
var settings = new GridViewSettings();
settings.Name = "MyGrid";
// simplified for brevity
settings.Columns.Add(col =>
{
col.Caption = "Department";
col.SetDataItemTemplateContent(dataTemplate =>
{
String DepartmentID = (String)DataBinder.Eval(dataTemplate.DataItem, "DEPARTMENT_ID");
if (DepartmentID != null)
{
html.DevExpress().Label(label =>
{
label.Text = String.Format("{0}", DataBinder.Eval(dataTemplate.DataItem, "DEPARTMENT.NAME"));
}).Render();
}
}
}
return settings;
}
与视图不同,默认情况下,控制器操作没有对HtmlHelper
的引用,因此您需要在GridViewSettings
方法中包含HtmlHelper
类来创建HTML帮助器扩展
如果设计无法导出您的DataItemTemplateContent
,请尝试使用将GridView内容导出到XtraReport
其他参考资料:
使用
HtmlHelper
所描述的类(阅读使用HtmlHelper类一节),此代码可能会解决您的问题:
public GridViewSettings MyGridSettings(this HtmlHelper html)
{
var settings = new GridViewSettings();
settings.Name = "MyGrid";
// simplified for brevity
settings.Columns.Add(col =>
{
col.Caption = "Department";
col.SetDataItemTemplateContent(dataTemplate =>
{
String DepartmentID = (String)DataBinder.Eval(dataTemplate.DataItem, "DEPARTMENT_ID");
if (DepartmentID != null)
{
html.DevExpress().Label(label =>
{
label.Text = String.Format("{0}", DataBinder.Eval(dataTemplate.DataItem, "DEPARTMENT.NAME"));
}).Render();
}
}
}
return settings;
}
与视图不同,默认情况下,控制器操作没有对HtmlHelper
的引用,因此您需要在GridViewSettings
方法中包含HtmlHelper
类来创建HTML帮助器扩展
如果设计无法导出您的DataItemTemplateContent
,请尝试使用将GridView内容导出到XtraReport
其他参考资料: