簡體   English   中英

用字母順序的人名填充表格

[英]Populating a table with alphabetized people names

我在客戶端動態創建一個表,並用一個人的名字列表填充它。

sbData.Append("<table>");
    int iColumnCounter = 1;
    sbData.Append("<tr>");

    foreach (int _iPerId in lsiPeople)
    {
        if (iColumnCounter == 5)
        {
            iColumnCounter = 1;
            sbData.Append("</tr><tr>");
        }

        string sName = GetPersonName(_iPerId);
        DropDownList_Student.Items.Add(new ListItem(sName, _iPerId.ToString()));
        sbData.AppendFormat("<td><input class=\"studentCheckBox\" type=\"checkbox\" onClick=\"UpdateSelectedCounter()\" id={0} name=\"{1}\" value={0}>{1}</td>", _iPerId, sName);
        iColumnCounter++;
    }

    sbData.Append("</tr>");
    sbData.Append("</table>");

名稱已經按字母順序排序,但是正如您所看到的,這將以從左到右的順序輸入它們來跳入一列。 當到達4列時,它將轉到下一行。

我想要它走,在一列中從上到下,然后到下一列,所以就像

______
|A|C|L|
|A|F|N|
|C|K|N|

想象一下,這些字母是人的名字的第一個字母。

如果您想要一個4x4的表,則按字母順序下降,則索引如下:

*/
[0][4][8][12]
[1][5][9][13]
[2][6][10][14]
[3][7][11][15]
*/

所以您想要做的是這樣的:

 sbData.Append("<table>");
    int iColumnCounter = 0;
    sbData.Append("<tr>");

    for(int i = -4; i < lsiPeople.count; )
    {
        iColumnCounter++;
        i+=4;
        if(5 == iColumnCounter)
        {
            iColumnCounter = 1;
            i = i - 15;//we want the index to go back to start of next row
            sbData.Append("</tr><tr>");
        }
        string sName = GetPersonName(i);
        DropDownList_Student.Items.Add(new ListItem(sName, _iPerId.ToString()));
        sbData.AppendFormat("<td><input class=\"studentCheckBox\" type=\"checkbox\" onClick=\"UpdateSelectedCounter()\" id={0} name=\"{1}\" value={0}>{1}</td>", _iPerId, sName);
    }

    sbData.Append("</tr>");
    sbData.Append("</table>");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM