Gridview在运行时计算列

时间:2011-12-23 06:01:16

标签: asp.net gridview

我有一个带有三列和五行的网格视图,其中包含文本项目模板字段,用于使用Gridview将运行时数据插入到数据库中。我想在此网格视图中进行一些计算,例如添加Col1和Col2的列第3列,也是页脚中的Col1的总和。我也希望计算文本框中的文本更改,不带回发或页面刷新。请告诉我我该怎么做。 我有以下代码来制作网格视图

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" ShowFooter="True">
            <Columns>
                <asp:TemplateField HeaderText="One">
                    <FooterTemplate>
                        <asp:Label ID="lblOne_tot" runat="server"></asp:Label>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Two">
                    <FooterTemplate>
                        <asp:Label ID="lblTwo_tot" runat="server"></asp:Label>
                    </FooterTemplate>
                    <ItemTemplate>
                        <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
                    </ItemTemplate>
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Total">
                    <ItemTemplate>
                        <asp:Label ID="lblTotal" runat="server"></asp:Label>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>

1 个答案:

答案 0 :(得分:0)

在每个调用JavaScript函数的文本框中添加“onChange”事件。在此功能中,进行计算并更新正确的标签/ div / span / etc。

<script language="javascript">
function doCalculations1(whichControl)
{
   //do calculations on whichControl.value
   var outputValue = whichControl.value * 5;
   //replace lblOne_tot with clientID after page is built
   document.getElementById("lblOne_tot").value = outputValue;
}
</script>

<asp:TextBox id="TextBox1" runat="server" onchange="javascript:doCalculations1(this);" />