Hi asrul,
I have created a sample which full fill your requirement. You need to initialize b = 1 instead of 0.
C#
protected void Show(object sender, EventArgs e)
{
DataTable result = new DataTable();
result.Columns.AddRange(new DataColumn[] { new DataColumn("ID"), new DataColumn("Bundle") });
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[] { new DataColumn("ID") });
dt.Rows.Add("A01");
dt.Rows.Add("A02");
dt.Rows.Add("A03");
dt.Rows.Add("A04");
dt.Rows.Add("A05");
dt.Rows.Add("A06");
dt.Rows.Add("A07");
dt.Rows.Add("A08");
dt.Rows.Add("A09");
dt.Rows.Add("A11");
dt.Rows.Add("A12");
dt.Rows.Add("A13");
dt.Rows.Add("A14");
dt.Rows.Add("A15");
dt.Rows.Add("A16");
int b = 0;
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = result.NewRow();
if ((i > 0) && (i % 3 == 0))
{
b++;
}
dr["ID"] = dt.Rows[i].ItemArray[0];
dr["Bundle"] = "B" + b.ToString().PadLeft(2, '0');
result.Rows.Add(dr);
}
}
VB
Protected Sub Show(sender As Object, e As EventArgs)
Dim result As New DataTable()
result.Columns.AddRange(New DataColumn() {New DataColumn("ID"), New DataColumn("Bundle")})
Dim dt As New DataTable()
dt.Columns.AddRange(New DataColumn() {New DataColumn("ID")})
dt.Rows.Add("A01")
dt.Rows.Add("A02")
dt.Rows.Add("A03")
dt.Rows.Add("A04")
dt.Rows.Add("A05")
dt.Rows.Add("A06")
dt.Rows.Add("A07")
dt.Rows.Add("A08")
dt.Rows.Add("A09")
dt.Rows.Add("A11")
dt.Rows.Add("A12")
dt.Rows.Add("A13")
dt.Rows.Add("A14")
dt.Rows.Add("A15")
dt.Rows.Add("A16")
Dim b As Integer = 0
For i As Integer = 0 To dt.Rows.Count - 1
Dim dr As DataRow = result.NewRow()
If (i > 0) AndAlso (i Mod 3 = 0) Then
b += 1
End If
dr("ID") = dt.Rows(i).ItemArray(0)
dr("Bundle") = "B" + b.ToString().PadLeft(2, "0"C)
result.Rows.Add(dr)
Next
End Sub
ScreenShot
