我查看了很多的关于 DATAGRID 的多行数据更新的,贴子,我还是没弄明白,怎么也没达到我想达到的要求!所以再次求问!
   学校的教学管理,有学生的学号, 姓名,是已经保存在数据库中的,但是语文,数学,外语成绩(还是默认值0分)要不同的教师(或者是不同的教学单位)根据考试的情况添加到数据库表中.
    要在web页面上实现,怎么才能实现  datagrid   多行数据同时显示为文本框(可编辑状态),   数据更改后再一起更新!

解决方案 »

  1.   

    多行数据同时显示成文本框:动态生成文本框;但要在DATAGRID里同时用文本框显示多行数据不太可能,用摸板列只能实现当前行以文本框形式显示,不能多行同时用文本框显示! 批量提交到是能够完成!
      

  2.   

    http://ms.mblogger.cn/gwazy/posts/11490.aspx
      

  3.   

    to: 50277(柳影随风) ,
    你说“用摸板列只能实现当前行以文本框形式显示,不能多行同时用文本框显示!”
    是怎么回事?迷惑ing……
    既然用了摸板列,那就能够把任意行以任意形式显示的呀
      

  4.   

    多行数据可以把文本框和label都放到一行中,用js控制显示隐藏键盘移动问题,要用js控制textbox的keydown事件
      

  5.   

    function keyDown()
    {
     if(event.keyCode==13)
     {
      event.keyCode=9;
      return true;
     }
    }document.onkeydown=keyDown;加在 head标签 中.....
      

  6.   

    感谢!
    回   boytomato(深爱一人叫颖的女孩!) 
    我按你的回答,建了一个可多行更新的表,可以添加数据入数据库表,但不能更新,按更新数据表提示为:更新数据表失败,出现意外错误:索引超出范围。必须为非负值并小于集合大小。参数名: index .
    不知错误源!
      

  7.   

    age=byte.Parse(((TextBox)dgitem.Cells[1].Controls[1]).Text);
    象这些地方你注意一下...
    dgitem.Cells[i]  注意一下i 的值....
    不爽的话建义用 findcontrol["id"] , id 为控件 id
      

  8.   


    http://218.27.204.17/aspnet/a_user.aspx
      

  9.   

    private void Bsave_Click(object sender, System.EventArgs e)
    {
    try
      {
    foreach(DataGridItem ii in DataGrid1.Items)
    {
    DataRow r; r = dataSet11.Storage_IniStock.Rows.Find(int.Parse(ii.Cells[6].Text)); if(ii.ItemType == ListItemType.Item||ii.ItemType == ListItemType.AlternatingItem)
    {
    r["mtralcode"] = ((TextBox)ii.FindControl("tb")).Text.Trim();

    }
    }
    adp.Update(dataSet11);
    Label1.Text = "保存成功...";
    }



    catch{ Label1.Text = "保存失败,请确认没有重复的物资编码...";} }
      

  10.   

    age=byte.Parse(((TextBox)dgitem.Cells[i].Controls[j]).Text);
    dgitem.Cells[i]  注意一下i 的值....
    controls[j]  注意 j 值....
      

  11.   

    键盘移动:http://www.mike-levin.com/arrowkeys/index.html
      

  12.   

    JavaScript实现回车键和上下键在web控件间跳转 
    /*实现功能:
    输入回车键,移动到下一个可以输入、选择的控件;
    在DataGrid中,输入向下键,复制数据到该列下一个控件,并移动到该处;
    输入向上键,移动到该列上一个控件。
    */
    document.onkeydown=keyEnterfunction keyEnter(e) 
    {
     var srcElement=window.event.srcElement;
     var iKeyCode=window.event.keyCode; if(iKeyCode==13||(srcElement.name.indexOf('_ctl', 0) > 0&&(iKeyCode==40||iKeyCode==38)))
     {
      if(srcElement.tagName=="INPUT"&&(srcElement.type=="button"||srcElement.type=="submit"||srcElement.type=="reset"||srcElement.type=="image"))
      {
       return false;
      }  
      if (srcElement.tagName=="INPUT"||srcElement.tagName=="SELECT") 
      {
       if(iKeyCode!=38)
       {
        if(srcElement.onchange!=null)
        {
         var SrcValue=srcElement.value;
         srcElement.onchange();
        }
        var i = 0;
        while (srcElement!=srcElement.form.elements[i])
        {
         i++;
         if(srcElement.form.elements.length==i) //一进找到最后一个元素
         {  
          return false;
         }
        }
        //继续循环找到非Disabled和readOnly
        var NextElement=srcElement.form.elements[i+1];
        for(j=i+1;j<srcElement.form.elements.length;j++)
        {
         NextElement=srcElement.form.elements[j];
         if(NextElement.readOnly||(NextElement.disabled==true||NextElement.disabled=='disabled')||NextElement.style.display=="none") 
         {
          NextElement=null;
          continue;
         }
         /*****************************
         回车时候屏蔽掉提交按钮
         **********************/
         //if(srcElement.form.name!="Login")
         //{
          if(NextElement.tagName=="INPUT"&&(NextElement.type=="button"||NextElement.type=="submit"||NextElement.type=="reset"||srcElement.type=="image"))
          {
           NextElement=null;
           continue;
          }
         //}
         /*****************************/
         if(NextElement.tagName=="INPUT")
         {
          if(NextElement.type=="hidden")
          {
           NextElement=null;
           continue;
          }
         }
         
         if(srcElement.name.indexOf('_ctl', 0) > 0&&iKeyCode==40)
         {
          if(NextElement.name.indexOf('_ctl', 0) > 0)
          {
           var Srcname = srcElement.name.split(":");
           var NextName = NextElement.name.split(":");
           if(Srcname[2]!=NextName[2])
           {
            NextElement=null;
            continue;
           }
           else
           {
            NextElement.value=srcElement.value;
           }
          }
          else
          {
           NextElement=null;
           continue;
          }
         }
         break;
         
        }
       }
       else 
       {
        var i = 0;
        while (srcElement!=srcElement.form.elements[i])
        {
         i++;
         if(srcElement.form.elements.length==i) //一进找到最后一个元素  
          return false;
        }
        //继续循环找到非Disabled和readOnly
        var NextElement=srcElement.form.elements[i-1];
        for(j=i-1;j>0;j--)
        {
         NextElement=srcElement.form.elements[j];
         
         if(NextElement.readOnly||(NextElement.disabled==true||NextElement.disabled=='disabled')||NextElement.style.display=="none") 
         {
          NextElement=null;
          continue;
         }
         /*****************************
         回车时候屏蔽掉提交按钮
         **********************/
         if(NextElement.tagName=="INPUT"&&(NextElement.type=="button"||NextElement.type=="submit"||NextElement.type=="reset"||srcElement.type=="image"))
         {
          NextElement=null;
          continue;
         }
         /*****************************/
         if(NextElement.tagName=="INPUT")
         {
          if(NextElement.type=="hidden")
          {
           NextElement=null;
           continue;
          }
         }
         
         if(srcElement.name.indexOf('_ctl', 0) > 0)
         {
          if(NextElement.name.indexOf('_ctl', 0) > 0)
          {
           var Srcname = srcElement.name.split(":");
           var NextName = NextElement.name.split(":");
           if(Srcname[2]!=NextName[2])
           {
            NextElement=null;
            continue;
           }
          }
          else
          {
           NextElement=null;
           continue;
          }
         }
         break;
         
        }
       }
       
       if(NextElement)
       {
        
        if(srcElement.tagName=="INPUT"&&srcElement.type=="file")
         ;
        else
         window.event.keyCode=0;
        try
        {
         NextElement.focus();
        }
        catch(e1)
        {
         ;
        }
        if(NextElement.tagName=="INPUT")
        {
         if(NextElement.type=="text"||NextElement.type=="password")
          NextElement.select();
        }
       }
      }
      return false;
     }
    }
      

  13.   

    全编辑WebGrid控件LrcGrid(1)
    http://blog.csdn.net/masterlrc/archive/2005/02/01/276570.aspx