asp:repeater 控件如何动态合并单元格。
解决方案 »
- 对于上传文件类型的判断
- 不允许从数据类型 sql_variant 到 uniqueidentifier 的隐性转换,这个问题怎么解决?
- 如何得到HTML控件的VALUE值?
- ~~~~~关于服务器控件
- 用户的配置,用XML存好还是用数据库存好?
- CSDN里还有高手吗?这样的问题在线等了好几天没人能回答
- 请高手帮帮忙
- 老板叫学asp.net可web 应用程序运行后出来乱马????急救!!!!!
- RegularExpressionValidator是不是不能用来验证输入框是否为空?
- 谢谢提供WEB系统方案
- 哪里可以找到补丁,让VS2003 编辑器不再"修改"我的HTML源代码?
- 如何避免一个词在中间折行?
-----------------------------------------------------------
1 1 梨 5.00 a 8.45
1 2 苹果 3.45 a 8.45
-----------------------------------------------------------
1 1 梨 4.00 b 8.00
1 2 苹果 4.00 b 8.00
---------------------------------------------------------
2 1 香蕉 1.5 a 4.5
2 2 龙眼 3.00 a 4.5
-----------------------------------------------------------
2 1 香蕉 1.2 c 4.2
2 2 龙眼 3.00 c 4.2想要的结果组号 分项 水果名称 单价 企业 总价
-----------------------------------------------------------
1 1 梨 5.00 a 8.45
2 苹果 3.45
-----------------------------------------------
1 梨 4.00 b 8.00
2 苹果 4.00
-----------------------------------------------------------
2 1 香蕉 1.5 a 4.5
2 龙眼 3.00
------------------------------------------------------
1 香蕉 1.2 c 4.2
2 龙眼 3.00注:组号单元格合并根据组号的记录数,企业,总价单元格的合并是根据企业记录数
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="tempRepeater.aspx.cs" Inherits="aaaa_tempRepeater" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div style="width:100%">
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table width="100%"><tr><td width="10%">组号</td><td width="10%">分项</td><td width="20%">水果名称</td><td width="20%">单价</td><td width="20%">企业</td><td width="20%">总价</td></tr></table>
</HeaderTemplate>
<AlternatingItemTemplate>
<table width="100%"><tr><td width="10%"><asp:Literal ID='litGroup' Text='<%#Eval("Group") %>' runat="server"></asp:Literal></td><td width="10%"><asp:Literal ID='litOption' Text='<%#Eval("Option") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litName' Text='<%#Eval("Name") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litPrice' Text='<%#Eval("Price") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litCompany' Text='<%#Eval("Company") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litSum' Text='<%#Eval("Sum") %>' runat="server"></asp:Literal></td></tr></table>
</AlternatingItemTemplate>
<ItemTemplate>
<table width="100%"><tr><td width="10%"><asp:Literal ID='litGroup' Text='<%#Eval("Group") %>' runat="server"></asp:Literal></td><td width="10%"><asp:Literal ID='litOption' Text='<%#Eval("Option") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litName' Text='<%#Eval("Name") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litPrice' Text='<%#Eval("Price") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litCompany' Text='<%#Eval("Company") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litSum' Text='<%#Eval("Sum") %>' runat="server"></asp:Literal></td></tr></table>
</ItemTemplate>
</asp:Repeater>
<br /><br />
<asp:Repeater ID="rp" runat="server" OnItemDataBound="rp_ItemDataBound" >
<HeaderTemplate>
<table width="100%"><tr><td width="10%">组号</td><td width="10%">分项</td><td width="20%">水果名称</td><td width="20%">单价</td><td width="20%">企业</td><td width="20%">总价</td></tr></table>
</HeaderTemplate>
<AlternatingItemTemplate>
<table width="100%"><tr><td width="10%"><asp:Literal ID='litGroup' Text='<%#Eval("Group") %>' runat="server"></asp:Literal></td><td width="10%"><asp:Literal ID='litOption' Text='<%#Eval("Option") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litName' Text='<%#Eval("Name") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litPrice' Text='<%#Eval("Price") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litCompany' Text='<%#Eval("Company") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litSum' Text='<%#Eval("Sum") %>' runat="server"></asp:Literal></td></tr></table>
</AlternatingItemTemplate>
<ItemTemplate>
<table width="100%"><tr><td width="10%"><asp:Literal ID='litGroup' Text='<%#Eval("Group") %>' runat="server"></asp:Literal></td><td width="10%"><asp:Literal ID='litOption' Text='<%#Eval("Option") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litName' Text='<%#Eval("Name") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litPrice' Text='<%#Eval("Price") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litCompany' Text='<%#Eval("Company") %>' runat="server"></asp:Literal></td><td width="20%"><asp:Literal ID='litSum' Text='<%#Eval("Sum") %>' runat="server"></asp:Literal></td></tr></table>
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class aaaa_tempRepeater : System.Web.UI.Page
{
string group = "", company = "", sum = "";
protected DataTable getDataTable()
{
System.Data.DataTable dt = new System.Data.DataTable();
System.Data.DataRow dr;
dt.Columns.Add(new System.Data.DataColumn("Group", typeof(System.Int32)));
dt.Columns.Add(new System.Data.DataColumn("Option", typeof(System.Int32)));
dt.Columns.Add(new System.Data.DataColumn("Name", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("Price", typeof(System.Double)));
dt.Columns.Add(new System.Data.DataColumn("Company", typeof(System.String)));
dt.Columns.Add(new System.Data.DataColumn("Sum", typeof(System.Double)));
dr = dt.NewRow();
dr[0] = 1;
dr[1] = 1;
dr[2] = "梨";
dr[3] = 5.00;
dr[4] = "a";
dr[5] = 8.45;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 1;
dr[1] = 2;
dr[2] = "苹果";
dr[3] = 3.45;
dr[4] = "a";
dr[5] = 8.45;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 1;
dr[1] = 1;
dr[2] = "梨";
dr[3] = 4.00;
dr[4] = "b";
dr[5] = 8.00;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 1;
dr[1] = 2;
dr[2] = "苹果";
dr[3] = 4.00;
dr[4] = "b";
dr[5] = 8.00;
dt.Rows.Add(dr);
//
dr = dt.NewRow();
dr[0] = 2;
dr[1] = 1;
dr[2] = "香蕉";
dr[3] = 1.5;
dr[4] = "a";
dr[5] = 4.5;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 2;
dr[1] = 2;
dr[2] = "龙眼";
dr[3] = 3.00;
dr[4] = "a";
dr[5] = 4.5;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 2;
dr[1] = 1;
dr[2] = "香蕉";
dr[3] = 1.2;
dr[4] = "c";
dr[5] = 4.2;
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = 2;
dr[1] = 2;
dr[2] = "龙眼";
dr[3] = 3.00;
dr[4] = "c";
dr[5] = 4.2;
dt.Rows.Add(dr);
return dt;
} protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Repeater1.DataSource = getDataTable();
Repeater1.DataBind();
rp.DataSource = getDataTable();
rp.DataBind();
}
//System.Drawing.Image oImage = System.Drawing.Image.FromFile(@"E:\LXD\新建文件夹 (2)\未命名.gif");
}
protected void rp_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
if (e.Item.ItemIndex == 0)
{
group = ((DataRowView)e.Item.DataItem).Row["Group"].ToString();
company = ((DataRowView)e.Item.DataItem).Row["Company"].ToString();
sum = ((DataRowView)e.Item.DataItem).Row["Sum"].ToString();
}
else
{
//Group
if(((DataRowView)e.Item.DataItem).Row["Group"].ToString()==group)
{
Literal litGroup = e.Item.FindControl("litGroup") as Literal;
if (litGroup != null)
{
litGroup.Text = "";
}
}
else
{
group = ((DataRowView)e.Item.DataItem).Row["Group"].ToString();
}
//Company
if (((DataRowView)e.Item.DataItem).Row["Company"].ToString() == company)
{
Literal litCompany = e.Item.FindControl("litCompany") as Literal;
if (litCompany != null)
{
litCompany.Text = "";
}
}
else
{
company = ((DataRowView)e.Item.DataItem).Row["Company"].ToString();
}
//Sum
if (((DataRowView)e.Item.DataItem).Row["Sum"].ToString() == sum)
{
Literal litSum = e.Item.FindControl("litSum") as Literal;
if (litSum != null)
{
litSum.Text = "";
}
}
else
{
sum = ((DataRowView)e.Item.DataItem).Row["Sum"].ToString();
}
}
}
}
}