首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

动态增加gridview 的行数时异常了

2013-12-17 
动态增加gridview 的行数时错误了?在一个gridview中 动态增加行数 gridview中在footer 还有合计行如果没有

动态增加gridview 的行数时错误了?
在一个gridview中 动态增加行数 gridview中在footer 还有合计行 
 如果没有合计行的话 代码没问题 但是加上合计行就出错了

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.FormatException: 输入字符串的格式不正确。

源错误: 


行 154:            {
行 155:                DataRowView myrows = (DataRowView)e.Row.DataItem;
行 156:                jshj += Convert.ToInt32(myrows[3].ToString());
行 157:                zlhj += Convert.ToDouble(myrows[4].ToString());
行 158:                tjhj += Convert.ToDouble(myrows[5].ToString());
 
添加行代码如下

        int jshj = 0;
        double zlhj = 0;
        double tjhj = 0;
        double hwyf = 0;
        double bxe = 0;
        double bxf = 0;
        double hwhk = 0;
        double zyf = 0;
        protected void gvData_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.DataRow)
            {
                DataRowView myrows = (DataRowView)e.Row.DataItem;
                jshj += Convert.ToInt32(myrows[3].ToString());
                zlhj += Convert.ToDouble(myrows[4].ToString());
                tjhj += Convert.ToDouble(myrows[5].ToString());

                hwyf += Convert.ToDouble(myrows[8].ToString());
                bxe += Convert.ToDouble(myrows[9].ToString());
                bxf += Convert.ToDouble(myrows[10].ToString());
                hwhk += Convert.ToDouble(myrows[11].ToString());
                zyf += Convert.ToDouble(myrows[12].ToString());
            }

            if (e.Row.RowType == DataControlRowType.Footer)
            {
                e.Row.Cells[1].Text = "合计";
                e.Row.Cells[2].Text = jshj.ToString();
                e.Row.Cells[3].Text = tjhj.ToString();
                e.Row.Cells[4].Text = zlhj.ToString();
                e.Row.Cells[7].Text = hwyf.ToString();
                e.Row.Cells[8].Text = bxe.ToString();
                e.Row.Cells[9].Text = bxf.ToString();
                e.Row.Cells[10].Text = hwhk.ToString();
                e.Row.Cells[11].Text = zyf.ToString();

            }
        }

        protected void gvData_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvData.EditIndex = -1;
            Bind();
        }


        protected void btnAdd_Click(object sender, EventArgs e)  //打印
        {
            //ClientScript.RegisterStartupScript(typeof(Page), "aa", "javascript:PrintData('" + lblSO_BH.Text + "')", true);
        }
        private DataTable GetGridViewData()
        {
            DataTable table = new DataTable();
            table.Columns.Add(new DataColumn("ID"));
            table.Columns.Add(new DataColumn("hwmc"));
            table.Columns.Add(new DataColumn("hwzjs"));
            
            table.Columns.Add(new DataColumn("hwztj"));
            table.Columns.Add(new DataColumn("hwzzl"));
            table.Columns.Add(new DataColumn("ddlJY_jfbz"));
            table.Columns.Add(new DataColumn("hwdj"));
            table.Columns.Add(new DataColumn("hwyf"));
            table.Columns.Add(new DataColumn("bxe"));
            table.Columns.Add(new DataColumn("bxf"));
            table.Columns.Add(new DataColumn("hwhk"));
            table.Columns.Add(new DataColumn("zyf"));
            //table.Columns.Add(new DataColumn("jsbzbm"));
            foreach (GridViewRow row in gvData.Rows)
            {
                DataRow sourseRow = table.NewRow();
                sourseRow["ID"] = row.Cells[0].Text;
                sourseRow["hwmc"] = ((TextBox)row.Cells[1].FindControl("hwmc")).Text;
                sourseRow["hwzjs"] = ((TextBox)row.Cells[2].FindControl("hwzjs")).Text;
                sourseRow["hwztj"] = ((TextBox)row.Cells[3].FindControl("hwztj")).Text;
                sourseRow["hwzzl"] = ((TextBox)row.Cells[4].FindControl("hwzzl")).Text;
                sourseRow["ddlJY_jfbz"] = ((DropDownList)row.Cells[5].FindControl("ddlJY_jfbz")).Text;
                sourseRow["hwdj"] = ((TextBox)row.Cells[5].FindControl("hwdj")).Text;
                sourseRow["hwyf"] = ((TextBox)row.Cells[6].FindControl("hwyf")).Text;
                sourseRow["bxe"] = ((TextBox)row.Cells[7].FindControl("bxe")).Text;
                sourseRow["bxf"] = ((TextBox)row.Cells[8].FindControl("bxf")).Text;
                sourseRow["hwhk"] = ((TextBox)row.Cells[9].FindControl("hwhk")).Text;
                sourseRow["zyf"] = ((TextBox)row.Cells[10].FindControl("zyf")).Text;
                //sourseRow["jsbzbm"] = ((TextBox)row.Cells[10].FindControl("jsbzbm")).Text;
                table.Rows.Add(sourseRow);
            }
            return table;
        }
        protected void btnHang_Click(object sender, EventArgs e)  //增加一行
        {
            DataTable table = GetGridViewData();
            DataRow newRow = table.NewRow();
            newRow["ID"] = Guid.NewGuid().ToString();


            newRow["hwmc"] = "";
            newRow["hwzjs"] = "0";
            newRow["hwztj"] = "0.000";
            newRow["hwzzl"] = "0.000";
            newRow["ddlJY_jfbz"] = "01";
            newRow["hwdj"] = "0";
            newRow["hwyf"] = "0";
            newRow["bxe"] = "0";
            newRow["bxf"] = "0";
            newRow["hwhk"] = "0";
            newRow["zyf"] = "0";
            table.Rows.Add(newRow);
            gvData.DataSource = table;
            gvData.DataBind();
           
        }


[解决办法]
http://www.cnblogs.com/chy710/archive/2007/03/27/690251.html
http://www.cnblogs.com/badwood316/archive/2008/02/04/1064438.html
参考

热点排行