Asp.net Gridview对列求和

Asp.net Gridview对列求和,asp.net,gridview,sqldatasource,Asp.net,Gridview,Sqldatasource,我试图在Gridview中将这些列相加到页脚中 每个Gridview行的每一列都有一个单独的总和 第presum1行=Convert.TODOUBLETENTXT1.Text;上的错误代码: Input string was not in a correct format. aspx.cs代码: double sum1 = 0; double sum2 = 0; double sum3 = 0; d

我试图在Gridview中将这些列相加到页脚中

每个Gridview行的每一列都有一个单独的总和

第presum1行=Convert.TODOUBLETENTXT1.Text;上的错误代码:

Input string was not in a correct format.
aspx.cs代码:

            double sum1 = 0;
            double sum2 = 0;
            double sum3 = 0;
            double presum1 = 0;
            double presum2 = 0;
            double presum3 = 0;
            foreach (GridViewRow GR in GridView1.Rows)
            {
                TextBox TempTxt1 = (TextBox)GR.FindControl("txt1");
                TextBox TempTxt2 = (TextBox)GR.FindControl("txt2");
                TextBox TempTxt3 = (TextBox)GR.FindControl("txt3");
                presum1 = Convert.ToDouble(TempTxt1.Text);
                presum2 = Convert.ToDouble(TempTxt2.Text);
                presum3 = Convert.ToDouble(TempTxt3.Text);
                sum1 += presum1;
                sum2 += presum2;
                sum3 += presum3;
            }
            TextBox FooterTemp1 = (TextBox)GridView1.FooterRow.FindControl("TextBoxFootercol1");
            FooterTemp1.Text = sum1.ToString();
            TextBox FooterTemp2 = (TextBox)GridView1.FooterRow.FindControl("TextBoxFootercol2");
            FooterTemp2.Text = sum2.ToString();
            TextBox FooterTemp3 = (TextBox)GridView1.FooterRow.FindControl("TextBoxFootercol3");
aspx代码:

 <asp:GridView ID="GridView1" 
    runat="server"
    DataSourceID="SqlDataSource1"
    AutoGenerateColumns="false"
    DataKeyNames="idt"
    showfooter="true">
    <Columns>
        <asp:BoundField DataField="idt" HeaderText="idt" Readonly="true" SortExpression="idt" />
        <asp:BoundField DataField="datetime" HeaderText="datetime" SortExpression="datetime" />
        <asp:TemplateField SortExpression="col1">
                <EditItemTemplate>
                    <asp:textbox id="col1TextBox" text='<%#Eval("col1")%>' runat="server"/>
                      <br/>
                      <asp:requiredfieldvalidator id="col1Validator"
                        controltovalidate="col1TextBox"
                        display="Dynamic"
                        text="Please enter data in col1."
                        runat="server" />                      
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:TextBox ID="txt1" runat="server" Text='<%# Eval("col1") %>' />
                </ItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="TextBoxFootercol1" text="col1" runat="server" MaxLength="40" />
            </FooterTemplate>
       </asp:TemplateField>
        <asp:TemplateField SortExpression="col2">
                <ItemTemplate>
                    <asp:TextBox ID="txt2" runat="server" Text='<%# Eval("col2") %>' />
                </ItemTemplate>
                <EditItemTemplate>
                    <asp:textbox id="col2TextBox" text='<%#Eval("col2")%>' runat="server"/>
                      <br/>
                      <asp:requiredfieldvalidator id="col2Validator"
                        controltovalidate="col2TextBox"
                        display="Dynamic"
                        text="Please enter data in col2."
                        runat="server" />                      
                </EditItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="TextBoxFootercol2" text="col2" runat="server" MaxLength="40" />
            </FooterTemplate>
        </asp:TemplateField>
        <asp:TemplateField SortExpression="col3">
                <EditItemTemplate>
                    <asp:textbox id="col3TextBox" text='<%#Eval("col3")%>' runat="server"/>
                      <br/>
                      <asp:requiredfieldvalidator id="col3Validator"
                        controltovalidate="col3TextBox"
                        display="Dynamic"
                        text="Please enter data in col3."
                        runat="server" />                      
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:TextBox ID="txt3" runat="server" Text='<%# Eval("col3") %>' />
                </ItemTemplate>
            <FooterTemplate>
                <asp:TextBox ID="TextBoxFootercol3"  text="col3" runat="server" MaxLength="40" />
            </FooterTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
<asp:SqlDataSource
    id="SqlDataSource1"
    ConnectionString="<%$ ConnectionStrings:Total %>"
    SelectCommand="SELECT * FROM [test];"
</asp:SqlDataSource>

使用调试器并检查FooterTemp1是否返回null??FooterTemp1没有列表。Text但sum1、sum2和sum3都等于零。在FooterTemp1附近设置断点并检查FooterTemp1 TextBox FooterTemp1=TextBoxGridView1.FooterRow.FindControlTextBoxFootercol1;并检查它是否能够找到文本,或者它是否返回null。它不返回null noTextBoxFootercol1 Nothing。连接字符串看起来正常。mdf文件匹配。