页面上用Repeater控件显示数据,显示的效果如下
怎么让它显示成这样的效果
注意是一个数据集
从数据库取出的每条数据,按照
1,2
3,4
5,6
7,8
这种样式的显示出来(其中,1,2,3,4等代表着一条数据)
怎么让它显示成这样的效果
注意是一个数据集
从数据库取出的每条数据,按照
1,2
3,4
5,6
7,8
这种样式的显示出来(其中,1,2,3,4等代表着一条数据)
解决方案 »
- asp.net可以实现在线修改office吗?各位大哥帮帮忙呀! [.NET技术 ASP.NET]
- NET大容量文件上传
- textbox赋值刷新内容丢失的问题
- 从数据库中取列,动态添加textbox,
- VS编译某个网站的网页时出现如下提示。求解释
- 我想用C#写一个自动登陆网站的程序,设置好登陆网站的地址,用户名,密码以及登陆时间和次数,自动实现登陆和退出,请高手给个思路
- 开发文档
- 如何在Page_load中调用return confirm("是否要保存?")
- 进来捡分吧,小问题?
- DATASET填充数据表的问题?
- ASP很见到的查询语句居然会导致缓冲区
- c#我想在xml中保存代码片段,可是取出来时怎么才能把这些东西转换成代码来执行呢
我想要的是
表格1,表格2,
表格3,表格4
表格5,表格6
表格7,表格8这八个表格都是从一个结果集中取得,
例如sql语句:
select 代码,名称,编号, 明细 from tb where ...这个结果集我用Repeater控件显示,
现在做出来的效果是
表格1,
表格2,
表格3,
....
但是我想要的是
表格1,表格2,
表格3,表格4
表格5,表格6
表格7,表格8
这种样式的
<form id="form1" runat="server">
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<ItemTemplate>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</ItemTemplate>
</asp:Repeater>
</form> protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(string));
dt.Columns.Add("Name", typeof(string));
DataRow dr = null;
for (int i = 1; i <= 5; i++)
{
dr = dt.NewRow();
dr["ID"] = i.ToString();
dr["Name"] = "Name" + i.ToString();
dt.Rows.Add(dr);
}
this.Repeater1.DataSource = dt;
this.Repeater1.DataBind();
} protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
StringBuilder sb = new StringBuilder(); switch ((e.Item.ItemIndex + 1) % 4)
{
case 1:
sb.AppendLine("<div style=\"clear:both;\"></div>");
sb.AppendLine("<div style=\"float:left;width:200px;\">");
break;
case 2:
sb.AppendLine("<div style=\"width:200px;\">");
break;
case 3:
sb.AppendLine("<div style=\"clear:both;\"></div>");
sb.AppendLine("<div style=\"float:left;width:200px;\">");
break;
case 0:
sb.AppendLine("<div style=\"width:200px;\">");
break;
}
sb.AppendLine("<table border=\"1\" width=\"100%\">");
sb.AppendLine("<tr>");
sb.AppendLine("<td>");
DataRowView drv = e.Item.DataItem as DataRowView;
sb.AppendLine(drv["Name"].ToString());
sb.AppendLine("</td>");
sb.AppendLine("</tr>");
sb.AppendLine("</table>"); // if ((e.Item.ItemIndex + 1) % 2 == 0)
{
sb.AppendLine("</div>");
} Literal lit = e.Item.FindControl("Literal1") as Literal; if (lit != null)
{
lit.Text = sb.ToString();
}
}
用<div id="div1">一个总得div 的宽度width设为你要重复区域div2 width的2倍,
<asp:repeater>
<ItemTemplate>
<div id="div2"></div> //要重复的区域,style设置为float:left,这样两个div2就可以并排了,第
</ItemTemplate>
</repeater> 3个div就被挤到第二行去了,5被挤到第三行,依次
</div>
拜托 Repeater 控件比DataList干净多了,DataList很少用建议楼主用 js 控制,还是不会的话去蓝色理想论坛问下,那是美工可以干的事。
用的是Repeater控件
页眉页脚放table
<HeaderTemplate>
<table>
</HeaderTemplate>
<FooterTemplate>
</table>
</FooterTemplate> 然后在
<ItemTemplate>
<tr>
<td>
<table></table> -- 放个table
<td>
</ItemTemplate><AlternatingItemTemplate>
<td>
<table></table> -- 放个table
<td>
</tr>
</AlternatingItemTemplate>
这样运行起来就是我想要的哪种格式了