2012-01-30 51 views
1

我正在使用ASP.NET与主页面。在这我有一个嵌套的中继器:如何计算选定复选框的总计?

<asp:Repeater ID=rptAttribute runat=server> 
<ItemTemplate> 
<h3><%# DataBinder.Eval(Container.DataItem, "Description") %></h3> 
<div id="labelbox"> 
    <asp:TextBox ID="tSecionTotal" runat="server"></asp:TextBox> 
    <div id="key1"> 
    <asp:Repeater ID="rptKey" runat="server"> 
     <ItemTemplate> 
     <asp:CheckBox ID="rptKeySelection" runat="server" /> 
     <span><%# DataBinder.Eval(Container.DataItem, "Description") %></span> 
     </ItemTemplate> 
    </asp:Repeater> 
    </div> 
</ItemTemplate> 
</asp:Repeater> 

我想计算每个部分中的复选框的值,使两个显示器。

  1. 让文本框字段(tSecionTotal)用复选框中的值更新。
  2. 总计文字/标签更新总数。渲染

HTML看起来像这样:

打开和关闭适当的相互作用
[ - 文本框以显示此部分的总 - ]

[]没有准备采取互动[+1]
[]没有使用正确的开放[+1]
[]没有确保没有其他需求[+2]
[]没有关闭以适当的方式相互作用[5]>

证明常见礼貌(礼貌,患者,移情)
[ - 文本框以显示此部分的总 - ]

[]没有采用常见的礼貌的话(请,谢谢)[+1]
[]客户不适当的声音水平/拐点[+2]
[]不恰当的中断顾客[+5]
[ ]在需要时没有表现出同情[+2]

适应客户的水平的知识和专长的

[ - 文本框来显示总本节 - ]

[]没有提供明确的指示(如何)[+ 1]
[]没有提供明确的指示(如何)[+1]
[]没有提供明确的解释/教育(为什么我们做这个)[+3]
[]没有提供明确的解释/教育(为什么我们这样做)[+5]

总体总计[ - 文本框,显示整体总 - ]

回答

2

你可以找到所有检查,那么该项目的值,加上他们并将其放置在总

var Total = 0; 
$("input:checked").each(function(i, selected){ 
    Total+= $(selected).parent(".keydiv").find(".myVal").val(); 
}); 

我在这里做的是找到所有的复选框,然后对每个复选框我去寻找它的元素(例如class=keydiv),然后我发现在tr的孩子里面有你赢得的价值添加的元素,我想有css =“myVal”。

让我们说,如果你这样渲染它。

<div id="key1" class="keydiv"> 
    check box 
    <span class="myVal">5</span> 
</div> 
+0

我假设我的例子中的.myVal是Div ID“key1”是这样吗?我想我仍然不知道你的意思,因为我的转发器中没有任何TR标签。另外我如何将它绑定到父代中继器内的文本框? – user1178691 2012-01-30 18:51:49

+0

@ user1178691我不确定你的结构,好吧,我用div和class更改tr,看看它。要找到正确的结构,您需要将html放置。 – Aristos 2012-01-30 18:54:35