程式設計師在編碼的過程中經常需要繪製表格,而表格相同的列重複顯示,頁面不簡潔也不美觀,如果通過程式控制頁面表格相同列的內容合併展示呢,以下我就分享一下我個人程式設計中的經驗
工具/原料
Microsoft Visual Studio
方法/步驟
由於本人平時習慣以C#進行程式設計,以下例子將以C#的語法展示,其他語言只要修改語法就可以,演算法還是可以使用的。
新建一個空白頁面,如下截圖,從工具箱中拖個table到頁面,詳見截圖2中標紅框。
以下是我在Table中增加的簡易內容,僅僅是為了展示效果。圖1是前臺展示效果,表格中 列1張三內容就重複展示,如果能夠合併展示,頁面就比較清晰簡潔。
頁面設計結束,接下來就是程式碼的編寫,先定義函式
///
/// 表格相同列的內容合併展示
///
///
///
private void GroupRows(Table gv, int cellNum)
{
}
函式中gv就是前臺定義的table的ID,cellnum就是要合併展示的列,注意這裡的列都是從0開始計數的
函式體如下:
int i = 0, rowSpanNum = 1;
while (i < gv.Rows.Count - 1)
{
TableRow gvr = gv.Rows[i];
for (++i; i < gv.Rows.Count; i++)
{
TableRow gvrNext = gv.Rows[i];
if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
{
gvrNext.Cells[cellNum].Visible = false;
rowSpanNum++;
}
else
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
rowSpanNum = 1;
break;
}
if (i == gv.Rows.Count - 1)
{
gvr.Cells[cellNum].RowSpan = rowSpanNum;
}
}
}
函式呼叫 GroupRows(Table1, 0);其中Table1就是前臺定義的Table的ID,0就是隻針對第一列有相同內容的進行合併。
到此結束,圖1 就是未合併前的效果,圖2 就是合併後的效果,合併後的頁面是不是更加簡單清楚呢,希望能夠在你的後續編碼能有所幫助。