在学生评价老师的评价页面中,有一个GridView,用户显示评价标准,以及依据标准打分。 
字段大体是这样的: 
        评价项目编号  评价项目内容    分数            最低分  最高分 
              001        认真负责  【此处一个下拉列表】    0      5 
其中,最大值依评价项目不同而变化,5,10,15不等。现在已经实现了下拉列表中显示根据每一行的最高分决定的由高到低显示的分数列表。
问题是,怎样计算选定项的分数之和?
我根据网上的解答,实验如下代码,Response什么也没返回啊,想来应该显示最后一个选择行的分数的。请大家帮忙看一下吧!
 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {         
            int i = Convert.ToInt32(e.RowIndex);
            string ID = GridView1.Rows[i].Cells[5].Text.ToString();   //得到GridView第i行第一列的文本
            string score = ((DropDownList)GridView1.Rows[i].FindControl("DropDownList1")).SelectedItem.ToString();
            GridView1.EditIndex = -1;
        
         
            Response.Write(score);       
    }

解决方案 »

  1.   

    按你的描述给你提供一个思路,不一定是最好的dropdownlist 选定以后 界面的 数据应该是一定的那么 你的总数 就可以 用 数据的条数*dropdownlist选定的分值
      

  2.   

    我需要把GridView中每一行的DropDownList的值加起来.
    在什么对象的什么事件中才能访问并且相加呢?
    提交按钮可以访问DropDownList的值吗?
      

  3.   

    在任何事件中!!
    int score=0;
    for(int i=0;i<GridView1.Rows.Count;i++)
    {
         score += Convert.ToInt16(((DropDownList)GridView1.Rows[i].Cells[列号].FindControl("DropDownList1")).SelectedItem);
    }
    Response.Write(score.ToString());
      

  4.   

    口口加一,你太牛了!几乎是贴上你的源代码就能用。
    不过有一点改动:
     protected void Button1_Click(object sender, EventArgs e)
        {
            int score = 0;
            for (int i = 0; i < GridView1.Rows.Count; i++)
            {
             //   score += Convert.ToInt16(((DropDownList)GridView1.Rows[i].Cells[5].FindControl("DropDownList1")).SelectedItem);
               这句出现错误提示:
            无法将类型为“System.Web.UI.WebControls.ListItem”的对象强制转换为类型“System.IConvertible”。 改为下面这样就可以了,算的太对了!
          
            
             DropDownList dp =(DropDownList)GridView1.Rows[i].Cells[5].FindControl("DropDownList1");
             score += Convert.ToInt32(dp.SelectedValue);
                      }
            Response.Write(score.ToString());
            
        }