我想给datagrid加一计算列hrq,用来存放:当前日期+2(2是指月份)的数值,请问如何在datagrid的属性生成器中增加,或其他办法.

解决方案 »

  1.   

        protected void DG_Accounts_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowIndex >= 0)
            {
                ChargeMoney += Convert.ToDouble(e.Row.Cells[8].Text);
                ShouldMoney += Convert.ToDouble(e.Row.Cells[12].Text);
                TextBox txt = e.Row.FindControl("txtAdjustMoney") as TextBox;
                Adjust += Convert.ToDouble(txt.Text);
                AdjustMoney += Convert.ToDouble(e.Row.Cells[14].Text);
            }
            else if (e.Row.RowType == DataControlRowType.Footer)
            {
                e.Row.Cells[7].Text = "总计:";
                e.Row.Cells[8].Text = ChargeMoney.ToString();
                e.Row.Cells[12].Text = ShouldMoney.ToString();
                e.Row.Cells[13].Text = Adjust.ToString();
                e.Row.Cells[14].Text = AdjustMoney.ToString();        }
        }
      

  2.   

    GridView 有一个事件RowDataBound,写一个函数响应这个事件,比如:OnRowDataBound, GridView在初始化每一行时会调用一次OnRowDataBound函数,就像lishijie910123写的那样,e.Row就是当前行,可以更改当前行的每个Cell的内容
      

  3.   

            SqlConnection con = Operate.createCon();
            con.Open();
            SqlDataAdapter sda = new SqlDataAdapter();
            string sql = string.Format("select bill.bill_autoid,bill.bill_hiddentel,bill.bill_no,bill.bill_money,diary_air.place_time,diary_air.place_name,count(diary_air.bill_autoid) as 'aa' from bill,diary_air where bill.bill_hiddentel like '114%' and bill.bill_autoid=diary_air.bill_autoid and diary_air.place_time between '" + aa + "' and '" + dd + "' and diary_air.explanatory='新预订单'group by bill.bill_no,bill.bill_hiddentel,bill.bill_money,diary_air.place_time,diary_air.place_name,bill.bill_autoid");
            sda.SelectCommand = new SqlCommand(sql, con);
            DataSet ds = new DataSet();
            DataTable dt_price = new DataTable();
            sda.Fill(ds, "per");
            dt_price = ds.Tables[0];
            SqlCommand cmd1 = new SqlCommand("select sum(bill_money) from tj114 where place_time between '" + aa + "' and '" + dd + "'", con);
            int sum = Convert.ToInt32(cmd1.ExecuteScalar());
            DataRow row = dt_price.NewRow();
            row["bill_money"] = sum;
            this.hjje.Text = Convert.ToString(sum);
            SqlCommand cmd2 = new SqlCommand("select sum(aa) from tj114 where place_time between '" + aa + "' and '" + dd + "'", con);
            int sum1 = Convert.ToInt32(cmd2.ExecuteScalar());
            this.hjz.Text = Convert.ToString(sum1);
            row["bill_hiddentel"] = "合计";
            row["aa"] = sum1;
            dt_price.Rows.Add(row);
            this.DataGrid1.DataSource = dt_price;
            this.DataGrid1.DataBind();
    这是我写的.就是你想要的.呵呵.你看看.
      

  4.   

    我用的是datagird,不时gridview
    =================================
    这两个就是一个控件~~
    一个只是在.NET2003,一个只是在2005里`~~
    它们的使用方法还是一样的`~只是多了些属性而以~~
    多看看MSDN吧~~
      

  5.   

    上面的朋友都理解错lz的意思了,lz问的是datagrid,不是gridview试试我的方法:
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemIndex>=0)
    {
    int order =e.Item.ItemIndex+1;
    e.Item.Cells[0].Text=order.ToString(); this.sum+=Convert.ToInt32(e.Item.Cells[3].Text);
     
    }
    if(e.Item.ItemType==ListItemType.Footer)
    {
    e.Item.Cells[0].Text="总工资:";
    e.Item.Cells[1].Text=this.sum.ToString();
    e.Item.Cells[2].Text="平均工资:";
    e.Item.Cells[3].Text=Convert.ToString(this.sum/this.DataGrid1.Items.Count);
    }

    }
    把红色部分和其他部分根据需要更改一下就可以了。