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>");
}
帮忙看看,我要在脚模板中取得红色部分的值,作为参数传递到后台,然后进行统计。