asp的Table创建表格

刘温柔_ 2017-06-08 11:48:50
想用数据填充table,每行四个数据,但是现在数据是数据库查询到的、不知道有多少个、如果有5条数据、后台就创建两行、第一行四列、第二行一列、如果有10条数据就创建3行、前两行都是四列、最后一行是2列、怎么写循环能实现这个、就是正好把需要的列加进对应的行里、求大家帮帮我
...全文
367 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你可以按照 msdn 的例子测试一下。 https://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.datalist.repeatcolumns(v=vs.110).aspx 它动态设置了列数。
ItemsList.RepeatColumns = ColumnsList.SelectedIndex;
  • 打赏
  • 举报
回复
你找一本 asp.net 教程学习一下 asp.net。
  • 打赏
  • 举报
回复
在过去的 asp.net 服务器控件中,这个绑定模式叫做 DataList 控件。
刘温柔_ 2017-06-08
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
果有5条数据、后台就创建两行、第一行四列、第二行一列、如果有10条数据就创建3行 其实我是没看懂的。。。。
就是数据不知道是多少、所以表格有多少行多少列也是未知的、但是要求是一行最多放四个、如果有五个就得新创建一行放着啊
正怒月神 2017-06-08
  • 打赏
  • 举报
回复
果有5条数据、后台就创建两行、第一行四列、第二行一列、如果有10条数据就创建3行 其实我是没看懂的。。。。
刘温柔_ 2017-06-08
  • 打赏
  • 举报
回复
谢谢大家的帮忙,根据大家给的思路我写出的代码、实现了需要的功能、用了C#中的goto: SqlDataReader reader = cmd.ExecuteReader(); //从数据库中读取数据流存入reader中 label: ; TableRow rows1 = new TableRow();//创建行 int a = 0;//用来判断创建了多少列 while (reader.Read())//读取下一行 { TableCell cell1 = new TableCell();//有数据-创建列 String FilePath = reader.GetString(reader.GetOrdinal("FilePath"));//获取FilePath字段的值 String FileSaveName = reader.GetString(reader.GetOrdinal("fileSaveName"));//获取FileName字段的值 String ShowName = reader.GetString(reader.GetOrdinal("ShowName"));//获取QRCodePath字段的值 cell1.Text = FileSaveName + FilePath + ShowName ;//给列赋值 cell1.HorizontalAlign = HorizontalAlign.Center; cell1.VerticalAlign = VerticalAlign.Middle; cell1.Height = 60;//为该列指定高度属性 cell1.Width = 476;//为该列指定宽度属性 rows1.Cells.Add(cell1);//将该列添加进一行中 rows1.Style["height"] = "100%";//为列添加样式 rows1.Style["background-color"] = "#D8D8EB"; rows1.Style["color"] = "#272727"; rows1.Style["font-size"] = "24px"; TabControl.Rows.Add(rows1); a++;//每加一列循环一次 if (a == 4) { goto label;//如添加了四列则跳到label位置重新创建一行 } }
刘温柔_ 2017-06-08
  • 打赏
  • 举报
回复
引用 7 楼 ducker3590 的回复:

//数据条数和4取模 如果有余数则说明要增加一行
var rowCount = data.Count % 4 > 0 ? (data.Count / 4) + 1 : data.Count / 4;

//循环行数 取数据
for (int i = 0; i < rowCount; i++)
{
    data.Skip(i * 4).Take(4);
}
恩恩、谢啦
csdnFUCKINGSUCKS 2017-06-08
  • 打赏
  • 举报
回复

//数据条数和4取模 如果有余数则说明要增加一行
var rowCount = data.Count % 4 > 0 ? (data.Count / 4) + 1 : data.Count / 4;

//循环行数 取数据
for (int i = 0; i < rowCount; i++)
{
    data.Skip(i * 4).Take(4);
}
刘温柔_ 2017-06-08
  • 打赏
  • 举报
回复
引用 5 楼 sp1234 的回复:
你可以按照 msdn 的例子测试一下。 https://msdn.microsoft.com/zh-cn/library/system.web.ui.webcontrols.datalist.repeatcolumns(v=vs.110).aspx 它动态设置了列数。
ItemsList.RepeatColumns = ColumnsList.SelectedIndex;
我会设置、但是就是想不通这个逻辑、想让大家帮我想一下这个逻辑

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧