[英]Dynamically populating table names from dropdownlist and displaying in Gridview
[英]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.