标签:tostring 三级 区域 table show 相同 tin sharp row
gridcontrol根据列合并后打印预览会有点问题,在翻页后偶尔会多显示一行。因为之前合并的方法是把这其余几行全部附加到第一行。被合并的那几行本来有内容没有删掉才导致这样。所以需要把这些内容删掉。各种问题太多,还是在绑定数据之前修改datatable好了。
System.Data.DataTable dt = new System.Data.DataTable();
string current3 = string.Empty; string current4 = string.Empty; int current5 = 0; int firstIndex = 0; //每次合并后的第一行行号 for (int i = 0; i < dt.Rows.Count; i++)
{
string biaoti3_1 = dt.Rows[i]["三级标题"].ToString(); if ( biaoti3_1!= current3) 当开始有新的合并区域时 { //MessageBox.Show(currentbiaoti4); if (i != 0) dt.Rows[firstIndex]["题目"] = dt.Rows[firstIndex]["三级标题"] + "\n" + current4; //除去第一行异常情况 current4 = dt.Rows[i]["题目"].ToString(); if (i != 0) dt.Rows[firstIndex]["分值"] = current5; //除去第一行异常情况
current5 = Convert.ToInt32(dt.Rows[i]["分值"]);
current3 = biaoti3_1; firstIndex = i;
}
else
{
current4 = current4 + "\n" + dt.Rows[i]["题目"].ToString(); //三级标题这一列内容相同时逐行累加
current5 += Convert.ToInt32(dt.Rows[i]["分值"]);
dt.Rows[i]["题目"] = string.Empty; //保证只有合并的第一行有内容
dt.Rows[i]["分值"] = string.Empty; //保证只有合并的第一行有内容
}
if (i == dt.Rows.Count - 1) //把最后一行添上
{
dt.Rows[firstIndex]["题目"] = dt.Rows[firstIndex]["三级标题"] + "\n" + current4; dt.Rows[firstIndex]["分值"] = current5;
}
}
这样也实现
标签:tostring 三级 区域 table show 相同 tin sharp row
原文地址:https://www.cnblogs.com/chenxiya/p/10289211.html