若行计数值超过某个限制,则将Gridview值拆分为具有相同标题的其他列
本文关键字:拆分 标题 其他 Gridview 则将 | 更新日期: 2023-09-27 17:59:45
我正在从SQL DB中获取数据,并在asp网页的Gridview中显示这些数据,现在我想根据行值将这些数据拆分到其他列中。例如:我有两列,如EmployeeId和EmployeeName,如果行值超过100,我希望将剩余数据显示到具有相同标题的其他列中。这里,相同的标题意味着数据来自同一个表,我有一个要求,就像我想在行值超过100计数时显示到其他列一样。
为什么不在现有的网格视图旁边添加另一个网格视图,它将包含相同的列。。。另外,你说的"行值"是什么意思还不清楚。我的答案是基于行计数超过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);
}
}