簡體   English   中英

在Telerik radgridview ui winform中導出為ex​​cel時,為每個父行的子行隱藏指定的列

[英]hide specified columns for each parent row child rows when exporting to excel in telerik radgridview ui winform

我的winform應用程序中有一個分層的telerik gridview 在這個gridview主模板中,我有一些行,每個行都有子行,並且在某些列中該父行的所有子行的null都為零。

我寫了一段代碼,只允許擴展一個父行,並且在擴展該父行時,只顯示至少在一個子行中具有值的列,並使用radGridView1_ChildViewExpanded事件處理程序隱藏該子行的子行全為空的列。

我的問題是當我想將此分層telerik gridview導出到Excel文件時。 為了達到我所描述的,我在導出時應該做什么,意味着僅導出其子行中至少具有一個值的列,而不為每個父行導出其他列。

為此,您可以使用GridViewSpreadExportHiddenRowOption屬性並將其設置為DoNotExport 然后,要定義隱藏的行,請將其IsVisible屬性設置為false

radGridView1.Rows[0].IsVisible = false;

有關此問題的更多信息,請參見Telerik UI for WinForms文檔的以下文章: 導出到Excel

我使用了這段代碼,它起作用了

void spreadExporter_CellFormatting(object sender, Telerik.WinControls.Export.CellFormattingEventArgs e)
    {
        if (e.GridRowInfoType == typeof(GridViewHierarchyRowInfo))
        {
            int i = 0;
            foreach (GridViewColumn column in radGridView1.MasterTemplate.Templates[0].Columns)
            {
                if (i > 1)
                {
                    int TotalNullRecords = (from row in e.GridCellInfo.RowInfo.ChildRows
                                            where string.IsNullOrWhiteSpace(row.Cells[column.Name].Value.ToString())
                                            select row).ToList().Count;

                    if (TotalNullRecords == e.GridCellInfo.RowInfo.ChildRows.Count)
                    {
                        radGridView1.MasterTemplate.Templates[0].Columns[column.Name].IsVisible = false;
                    }
                    else
                        radGridView1.MasterTemplate.Templates[0].Columns[column.Name].IsVisible = true;
                }
                i++;
            }
        }
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM