关于数据循环读取显示的问题

比如说:出库单打印时,一张单子只能显示10条数据,如果我选8条数据,
打印出一个单子,如果我选择13条数据,要打印出两个单子。
打印的时候我用的字符串拼接成html,调用web打印。
注意:重点是13条数据怎么显示成两个div(一张单子用一个DIV拼接)

刚刚让同事帮了一下:

   StringBuilder str = new StringBuilder();
            for (int j = 0; j < dt.Rows.Count; j++)
            {
                if (j % 10 == 0)
                {
                    str.Append("</table>");
                    str.Append("<table class=\"bor\" cellpadding=\"0\" cellspacing=\"0\">");
                    str.Append(@"<tr><td>序号</td><td>商品编码 </td><td> 商品名称 </td> <td> 商品型号/规格</td> <td>单位</td><td>数量</td> <td> 单价</td> <td> </tr>");
                }
                str.Append("<tr>");
                str.Append("<td height=\"20\" bgcolor=\"#FFFFFF\">" + j + "</td>");
                str.Append("<td height=\"20\" bgcolor=\"#FFFFFF\">" + biz.HandleNull(dt.Rows[j]["p_col_1"], "") + "</td>");
                str.Append("<td height=\"20\" bgcolor=\"#FFFFFF\">" + biz.HandleNull(dt.Rows[j]["p_col_2"], "") + "</td>");
                str.Append("<td height=\"20\" bgcolor=\"#FFFFFF\">" + biz.HandleNull(dt.Rows[j]["p_col_3"], "") + "</td>");
                str.Append("<td height=\"20\" bgcolor=\"#FFFFFF\">" + biz.HandleNull(dt.Rows[j]["Unit"], "") + "</td>");
                str.Append("<td height=\"20\" bgcolor=\"#FFFFFF\">" + biz.HandleNull(dt.Rows[j]["OrderDetails_Number"], "") + "</td>");
                str.Append("<td height=\"20\" bgcolor=\"#FFFFFF\">" + biz.HandleNull(dt.Rows[j]["p_col_8"], "") + "</td>");
                str.Append("</tr>");
            }
            str.Append("</table>");

大家有什么好的思路也发表一下呀