【发布时间】:2015-02-11 05:15:20
【问题描述】:
我想在gridview中乘以一个由一个Label和Textbox控件组成的gridview列,并在另一列中显示相乘后的值,如图所示。我想要做的是,一旦我单击按钮,所有项目都会显示在 gridview 上,如下所示,然后它会自动在相应列中乘以 rate * 1(默认情况下 Quantity 为 1)。
我的 asp.net 代码
<%--ServiceID --%>
<asp:TemplateField HeaderText="ServiceID" ItemStyle-Width="100px">
<ItemTemplate>
<asp:Label ID="lblServiceID" runat="server" Text='<%# Eval("ServiceId")%>'></asp:Label>
</ItemTemplate>
<ItemStyle Width="100px" />
</asp:TemplateField>
<%-- Rate --%>
<asp:TemplateField HeaderText="Rate" ItemStyle-Width="70px">
<ItemTemplate>
<asp:Label ID="lblRate" runat="server" Text='<%# Eval("Rate")%>' CssClass="rate"></asp:Label>
</ItemTemplate>
<ItemStyle Width="70px" />
</asp:TemplateField>
<%-- Quantity --%>
<asp:TemplateField HeaderText="Quantity">
<ItemTemplate>
<asp:TextBox ID="txtQuantity" runat="server" CssClass="txtQty"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Total">
<ItemTemplate>
<asp:Label ID="lblTotal" runat="server"></asp:Label>
</ItemTemplate>
</asp:TemplateField>
网格视图
C#代码
for (int i = 0; i < GridView1.Rows.Count; i++)
{
GridView1.Rows[i].Cells[3].Text = Convert.ToString(Convert.ToDecimal(GridView1.Rows[i].Cells[1].Text) * Convert.ToDecimal(GridView1.Rows[i].Cells[2].Text));
}
【问题讨论】:
-
虽然你可以做这个服务器端例如通过 Ajax 和 UpdatePanel,因为 Total 是派生的,所以我只需在客户端的 JavaScript 中执行此操作?
-
最好和更快的将在 javascript 中完成
-
我同意在客户端使用 javascript 来做这件事,但我会用 jQuery 来做,它会在几个语句中做到这一点。
-
你也在用jQuery吗?