我现在用GRIDVIEW控件显示数据,数据是各队的完成任务额,现在要在GRIDVIEW中增加新的一行,行中的数据就是各队任务的汇总,请问各位怎么增加一新行呢?

解决方案 »

  1.   

    RowDataBound 的时候判断e.Row.RowType,如果为 DataControlRowType.Footer 则自己Render出html来. 具体的数字可以先定义好变量,在 e.Row.RowType 为DataControlRowType.DataRow时累加就可以了.
      

  2.   

    private const int PRICE_START_COLUMN = 5;   // 金额列
    private decimal m_W1_Total = 0;  // 用于计算合计的变量
    private decimal m_W2_Total = 0;  // 用于计算合计的变量
    private decimal m_W3_Total = 0;  // 用于计算合计的变量
    private decimal m_W4_Total = 0;
    private decimal m_T_Total = 0;  // 用于计算合计的变量private decimal m_W1_Tax_Total = 0;  // 用于计算合计的变量
    private decimal m_W2_Tax_Total = 0;  // 用于计算合计的变量
    private decimal m_W3_Tax_Total = 0;  // 用于计算合计的变量
    private decimal m_W4_Tax_Total = 0; // 用于计算合计的变量
    private decimal m_T_Tax_Total = 0;  // 用于计算合计的变量
    private void grdDetail_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
    {// 添加高亮显示函数
    e.Item.Attributes.Add("onMouseOver", "this.className='DataGridItemHover';");
    e.Item.Attributes.Add("onMouseOut", "this.className='DataGridItem';");
    e.Item.Cells[e.Item.Cells.Count-1].Text="<a onclick=\"openwin('edit',"+e.Item.Cells[0].Text+")\" title=\"修改计划明细\">修改</a> <a onclick=\"del("+e.Item.Cells[0].Text+")\"  title=\"删除当前记录\">删除</a>";
    // 计算合计
    m_W1_Total += decimal.Parse(e.Item.Cells[PRICE_START_COLUMN].Text);
    m_W1_Tax_Total+=decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+1].Text);m_W2_Total += decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+2].Text);
    m_W2_Tax_Total+=decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+3].Text);m_W3_Total += decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+4].Text);
    m_W3_Tax_Total+=decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+5].Text);m_W4_Total += decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+6].Text);
    m_W4_Tax_Total+=decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+7].Text);m_T_Total += decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+8].Text);
    m_T_Tax_Total+=decimal.Parse(e.Item.Cells[PRICE_START_COLUMN+9].Text);
    }
    else if (e.Item.ItemType == ListItemType.Footer)
    {
    e.Item.Cells[0].Text = "合计";
    e.Item.Cells[PRICE_START_COLUMN].Text=m_W1_Total.ToString("0.00");
    e.Item.Cells[PRICE_START_COLUMN+1].Text=m_W1_Tax_Total.ToString("0.00");e.Item.Cells[PRICE_START_COLUMN+2].Text=m_W2_Total.ToString("0.00");
    e.Item.Cells[PRICE_START_COLUMN+3].Text=m_W2_Tax_Total.ToString("0.00");e.Item.Cells[PRICE_START_COLUMN+4].Text=m_W3_Total.ToString("0.00");
    e.Item.Cells[PRICE_START_COLUMN+5].Text=m_W3_Tax_Total.ToString("0.00");e.Item.Cells[PRICE_START_COLUMN+6].Text=m_W4_Total.ToString("0.00");
    e.Item.Cells[PRICE_START_COLUMN+7].Text=m_W4_Tax_Total.ToString("0.00");e.Item.Cells[PRICE_START_COLUMN+8].Text=m_T_Total.ToString("0.00");
    e.Item.Cells[PRICE_START_COLUMN+9].Text=m_T_Tax_Total.ToString("0.00");
    }
    this.txtPrice.Text=m_T_Total.ToString("0.00");
    this.txtTaxPrice.Text=m_T_Tax_Total.ToString("0.00");
    }
      

  3.   

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnaspp/html/GridViewEx09.asp