若行计数值超过某个限制,则将Gridview值拆分为具有相同标题的其他列

本文关键字:拆分 标题 其他 Gridview 则将 | 更新日期: 2023-09-27 17:59:45

我正在从SQL DB中获取数据,并在asp网页的Gridview中显示这些数据,现在我想根据行值将这些数据拆分到其他列中。例如:我有两列,如EmployeeId和EmployeeName,如果行值超过100,我希望将剩余数据显示到具有相同标题的其他列中。这里,相同的标题意味着数据来自同一个表,我有一个要求,就像我想在行值超过100计数时显示到其他列一样。

若行计数值超过某个限制,则将Gridview值拆分为具有相同标题的其他列

为什么不在现有的网格视图旁边添加另一个网格视图,它将包含相同的列。。。另外,你说的"行值"是什么意思还不清楚。我的答案是基于行计数超过100。

如果您需要一种跨越两列的方法,则需要大量工作:

https://social.msdn.microsoft.com/Forums/windows/en-US/87004d70-482a-4b86-ba18-371670254b6a/how-to-merge-headers-in-a-datagridview

关于将值拆分为2列,遵循一个想法(如果第二列>100,则不起作用,需要进行一些调整)

private void button2_Click(object sender, EventArgs e)
        {
            const int limitRows = 100;
            var col1 = new DataGridViewTextBoxColumn();
            var col2 = new DataGridViewTextBoxColumn();
            var col3 = new DataGridViewTextBoxColumn();
            gridProduct.AutoGenerateColumns = false;
            gridProduct.RowHeadersVisible = false;
            gridProduct.ColumnHeadersVisible = true;
            gridProduct.Columns.Add(col1);
            gridProduct.Columns.Add(col2);
            gridProduct.Columns.Add(col3);
            var colIndex = 0;
            int rowIndex = 0;
            for (int i = 0; i <= 200; i++)
            {
                if (i == limitRows)
                {
                    colIndex = 1;
                    rowIndex = 0;
                }
                else if (i > limitRows)
                    rowIndex++;
                else
                    rowIndex = gridProduct.Rows.Add();
                gridProduct.Rows[rowIndex].Cells[colIndex].Value = string.Format("Val for row {0}", i);
                gridProduct.Rows[rowIndex].Cells[2].Value = string.Format("Another val for row {0}", i);
            }
        }