首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么无法导出动态列?如何解决?只能导出固定列

为什么无法导出动态列?如何解决?只能导出固定列

提问于 2025-09-10 11:21:12
回答 0关注 0查看 7

<div class="mx-0 px-0" >

<MCard Class="mt-5 pb-5">

<MTabs Value="tabIndex" ValueChanged="args => TabChange(args)">

@foreach (var key in tabs.Keys)

{

<MTab Value="key">

@tabs[key]

</MTab>

}

</MTabs>

<MTabsItems Value="@tabIndex">

<MTabItem Value="1">

<StandardInfo Class="mt-5" Type="1" Item="_subjectAnalysisDTO"></StandardInfo>

</MTabItem>

<MTabItem Value="0">

<StandardInfo Class="mt-5" Type="0" Item="_subjectAnalysisDTO"></StandardInfo>

</MTabItem>

</MTabsItems>

<div class="grid-container my-5 mx-5">

<DxGrid @ref="Grid2"

Data="@cls列表导出"

ColumnResizeMode="GridColumnResizeMode.NextColumn"

TextWrapEnabled="true"

HighlightRowOnHover="true"

PageSize="20">

<Columns>

<DxGridDataColumn FieldName="姓名" Width="100px" />

<DxGridDataColumn FieldName="部门" Width="100px" />

<DxGridDataColumn FieldName="工号" Width="150px" />

<DxGridDataColumn FieldName="岗位" Width="100px" />

<DxGridDataColumn FieldName="项目名称" Width="100px" />

<DxGridDataColumn FieldName="总完成数" Width="100px" />

<DxGridDataColumn FieldName="总进度" Width="100px" />

<DxGridBandColumn Caption="任务明细" Width="100px">

<Columns>

@* 任务生成 *@

@foreach (var stageName in 任务列表导出)

{

<DxGridDataColumn Caption="@stageName" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.任务数据列表?.FirstOrDefault(s => s.任务名称 == stageName);

@(stageData?.任务状态 ?? "-")

}

</CellDisplayTemplate>

</DxGridDataColumn>

}

</Columns>

</DxGridBandColumn>

@* 阶段生成 *@

@foreach (var stageName in 所有阶段列表导出)

{

<DxGridBandColumn Caption="@stageName" Width="100px">

<Columns>

<DxGridDataColumn Caption="开始时间" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.阶段数据列表导出?.FirstOrDefault(s => s.阶段名称 == stageName);

@(stageData?.开始时间 ?? "-")

}

</CellDisplayTemplate>

</DxGridDataColumn>

<DxGridDataColumn Caption="结束时间" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.阶段数据列表导出?.FirstOrDefault(s => s.阶段名称 == stageName);

@(stageData?.结束时间 ?? "-")

}

</CellDisplayTemplate>

</DxGridDataColumn>

<DxGridDataColumn Caption="首次学习" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.阶段数据列表导出?.FirstOrDefault(s => s.阶段名称 == stageName);

@(stageData?.首次学习时间 ?? "-")

}

</CellDisplayTemplate>

</DxGridDataColumn>

<DxGridDataColumn Caption="最近学习" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.阶段数据列表导出?.FirstOrDefault(s => s.阶段名称 == stageName);

@(stageData?.最近学习时间 ?? "-")

}

</CellDisplayTemplate>

</DxGridDataColumn>

<DxGridDataColumn Caption="阶段合格" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.阶段数据列表导出?.FirstOrDefault(s => s.阶段名称 == stageName);

<span class="@(stageData?.阶段合格)">

@(stageData?.阶段合格)

</span>

}

</CellDisplayTemplate>

</DxGridDataColumn>

<DxGridDataColumn Caption="阶段状态" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.阶段数据列表导出?.FirstOrDefault(s => s.阶段名称 == stageName);

<span class="@(stageData?.阶段状态)">

@(stageData?.阶段状态 ?? "未开始")

</span>

}

</CellDisplayTemplate>

</DxGridDataColumn>

<DxGridDataColumn Caption="阶段完成数" Width="100px">

<CellDisplayTemplate Context="context">

@{

var item = (cls导出)context.DataItem;

var stageData = item.阶段数据列表导出?.FirstOrDefault(s => s.阶段名称 == stageName);

@(stageData?.阶段完成数 ?? "0")

}

</CellDisplayTemplate>

</DxGridDataColumn>

</Columns>

</DxGridBandColumn>

}

</Columns>

<ToolbarTemplate>

<DxToolbar>

<DxToolbarItem Text="导出Excel" IconCssClass="dx-icon-exportxlsx" Click="ExportXlsx_Click导出" />

</DxToolbar>

</ToolbarTemplate>

</DxGrid>

</div>

</MCard>

</div>

private async Task ExportXlsx_Click导出()

{

if (Grid2 == null) return;

try

{

Grid2.Reload();

await Grid2.ExportToXlsxAsync($"学习进度详细报表_{DateTime.Now:yyyyMMdd_HHmmss}");

}

catch (Exception ex)

{

Console.WriteLine($"导出失败: {ex.Message}");

}

}

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档