Repeater嵌套,FootTemplate里无法取到ItemTemplate里可以取到的值?

暖枫无敌
领域专家: 后端开发技术领域
2010-11-23 04:03:10
<asp:Repeater ID="Repeater1" runat="server"
onitemdatabound="Repeater1_ItemDataBound">
<ItemTemplate>
<table width="100%" border="1">
<tr runat="server">
<td style="width:10%">
<%#Eval("考核名称") %>
</td>
<td style="width:20%">
<%#Eval("考核内容") %>
</td>
<td runat="server">
<asp:Repeater ID="Repeater2" runat="server" OnItemDataBound="Repeater2_ItemDataBound">
<HeaderTemplate>
<table style="height:100%;width:100%" border="1">
</HeaderTemplate>
<ItemTemplate>
<tr>
<td style="width:40%"><%#Eval("评分标准") %></td>
<td style="width:10%"><%#Eval("标准分值") %></td>
<td style="width:10%"><%#Eval("大类别ID")%></td>
</tr>
</ItemTemplate>
<FooterTemplate>
<tr runat="server">
<td style="width:40%" runat="server">
<asp:Label ID="lblCXXJText" runat="server" Text="此项小计"></asp:Label>
</td>
<td style="width:10%" runat="server">
<%#Eval("大类别ID")%> </td>
</tr>
</table>
</FooterTemplate>
</asp:Repeater>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>

后台:
public partial class BBGL_Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindKHMC();
}

protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Repeater rpt = (Repeater)e.Item.FindControl("Repeater2");
int index = e.Item.ItemIndex;
DM dm = new DM();
string strSQL = "select * from 考核明细表 where 大类别ID=" + (index + 1);
DataSet ds = dm.getsql(strSQL);
rpt.DataSource = ds;
rpt.DataBind();
}

protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DM dm = new DM();
string strSQL = "select distinct ID,考核名称,考核内容 from 考核大表 where 考核类别='组织管理部分(A )'";
DataSet ds = dm.getsql(strSQL);

if (e.Item.ItemType == ListItemType.Footer)
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
Label lblValue = (Label)e.Item.FindControl("lblCXXJValue");
lblValue.Text = getSum(ds.Tables[0].Rows[i]["ID"].ToString());
}
}
}

//此项小计求和
public string getSum(string id)
{
DM dm = new DM();
string strSQL = "select sum(标准分值) as 此项小计 from 考核明细表 where 大类别ID=" + int.Parse(id) ;
DataSet ds = dm.getsql(strSQL);
return ds.Tables[0].Rows[0]["此项小计"].ToString();
}

//绑定Repeater2控件(考核名称)
public void BindKHMC()
{
DM dm = new DM();
string strSQL = "select distinct ID,考核名称,考核内容 from 考核大表 where 考核类别='组织管理部分(A )'";
DataSet ds = dm.getsql(strSQL);
this.Repeater1.DataSource = ds;
this.Repeater1.DataBind();
//保存考核名称
ViewState["khid"] = ds.Tables[0].Rows[0]["ID"];
ClientScript.RegisterClientScriptBlock(GetType(), "", "<script>alert('" + ViewState["khid"].ToString() + "');</script>");
}

帮忙看看,我要在脚模板中取得红色部分的值,作为参数传递到后台,然后进行统计。
...全文
344 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
天下在我心 2010-11-23
  • 打赏
  • 举报
回复
用一个label来访这个你需要的值

<asp:Label ID="Label1" runat="server" Text='<%#Eval("大类别ID")%>'></asp:Label>

这样你就能取值了。在后台要用FindControl方法
阿非 2010-11-23
  • 打赏
  • 举报
回复
你是怎么写的

在 FooterTemplate 中 Eval 是不好用的
暖枫无敌 2010-11-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sandy945 的回复:]
OnItemDataBound="Repeater2_ItemDataBound">

在这个事件里写代码 就可以了
[/Quote]
我写过了,可是没成功
阿非 2010-11-23
  • 打赏
  • 举报
回复
OnItemDataBound="Repeater2_ItemDataBound">

在这个事件里写代码 就可以了
暖枫无敌 2010-11-23
  • 打赏
  • 举报
回复
暖枫无敌 2010-11-23
  • 打赏
  • 举报
回复
<FooterTemplate>
<tr runat="server">
<td style="width:40%" runat="server">
<asp:Label ID="lblCXXJText" runat="server" Text="此项小计"></asp:Label>
</td>
<td style="width:10%" runat="server">
<%#Eval("大类别ID")%> <asp:Label ID="lblCXXJValue" runat="server" Text='<%= this.getSum(Eval("大类别ID").ToString()).ToString() %>'></asp:Label>
</td>
</tr>
</table>
</FooterTemplate>

我想获取ItemTemplate里的<%#Eval("大类别ID")%>值,传到后台使用,进行统计。
阿非 2010-11-23
  • 打赏
  • 举报
回复
ItemTemplate 可能有多个, FooterTemplate 只有一个

你希望 FooterTemplate 显示 那个 ItemTemplate 相关的内容
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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