读书人

嵌套的repeater如何每行求和放在每

发布时间: 2012-08-29 08:40:14 作者: rapoo

嵌套的repeater,怎么每行求和,放在每行最后一个单元格

HTML code
 <table  border="1" align="left" cellspacing="0" bordercolor="#196ce3"             rules="all"             style="border: 1px solid #196ce3; border-collapse: collapse; height:237px; width: 1001px;">            <tr>            <td colspan="5" align="center" height="60"><strong>成绩表</strong></td>            </tr>        <tr>        <td rowspan="2" align="center" width="150"> <strong> 得分情况 </strong> </td>        <td colspan="4" align="center"><strong> c程序设计 </strong></td>         </tr>                  <tr >            <td  align="center"  style="cursor:hand;">            <strong>简单题</strong></td>            <td  align="center"  style="cursor:hand;">            <strong>中等题</strong></td>            <td  align="center"  style="cursor:hand;">             <strong>难题</strong></td>              <td  align="center" style="cursor:hand;">             <strong>总分</strong></td>         </tr>                                 <asp:Repeater ID="Repeater4" runat="server"                     onitemdatabound="Repeater4_ItemDataBound" >             <ItemTemplate>             <tr>             <td width="150" align="center" height="30"><%# Eval("chapter").ToString() %></td>             <asp:Repeater ID="Repeater3" runat="server" >             <ItemTemplate>                          <td  width="50" align="center"><strong> <%# Eval("e_score").ToString() %></strong></td>             <td width="50" align="center"><strong> <%# Eval("m_score").ToString()%></strong></td>             <td  width="50" align="center"><strong> <%# Eval("d_score").ToString()%></strong></td>             <td  width="50" align="center"><strong> <% # [color=#FF0000]这里是要绑定的总分[/color] %></strong></td>                          </ItemTemplate>            </asp:Repeater>             </tr>             </ItemTemplate>             </asp:Repeater>                     </table>

这是前台代码。 红色字体就是要绑定的,就是e_score + m_score + d_score 放在那里
C# code
protected void Page_Load(object sender, EventArgs e)        {            if(!IsPostBack)            {                Repeater4Bind();            }        }        protected void Repeater4Bind()        {            string sql = "select distinct chapter from student_score  where sid='" + Session["uid"].ToString() + "' order by chapter";            Common comm = new Common();            DataSet ds = comm.GetDataSet(sql);            Repeater4.DataSource = ds.Tables[0].DefaultView;            Repeater4.DataBind();        }        protected void Repeater4_ItemDataBound(object sender, RepeaterItemEventArgs e)        {            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)            {                Repeater rep = e.Item.FindControl("Repeater3") as Repeater; // 找到里层的repeater对象                 string sql = "select * from student_score where chapter = '" + DataBinder.Eval(e.Item.DataItem, "chapter") + "' and sid='" + Session["uid"].ToString() + "' ";                Common comm = new Common();                DataSet ds = comm.GetDataSet(sql);                rep.DataSource = ds.Tables[0].DefaultView;                rep.DataBind();            }        } 


这是后台代码、、求高手指点迷津 希望步骤详细点 本人刚学.NET不久 有点小白 谢谢!


[解决办法]
<td width="50" align="center"><strong> <%# Eval("e_score").ToString() %></strong></td>
<td width="50" align="center"><strong> <%# Eval("m_score").ToString()%></strong></td>
<td width="50" align="center"><strong> <%# Eval("d_score").ToString()%></strong></td>
<td width="50" align="center"><strong> <% # 这里是要绑定的总分 %></strong></td>
你绑定的这里,一种方法是用label控件来显示。比如<%# Eval("e_score").ToString() %>
改成<asp:Label ID="Label1" runat="server"
Text='<%# Eval("e_score").ToString() %>'></asp:Label>
这样,在前体显示的效果没有区别,后台可以在ItemDataBind()事件中,用findControl方法找到控件,然后取值,计算,给最后个总分显示的赋值。
还有就是可以在sql查询的视乎就计算,根据查询的结果直接绑定也可以。
前台绑定查询的Id值,后台方法计算返回等等都是可以的.
[解决办法]
1<%# (int.Parse(Eval("d_score").ToString()) +int.Parse( Eval("d_score").ToString()) + int.Parse(Eval("d_score").ToString()).ToString())%>

2
sql ='select d_score+e_score+m_score as sum_score from student_score where chapter ='
<%# Eval("sum_score").ToString()%>

读书人网 >asp.net

热点推荐