找到id即可
document.getElementById("TextBoxID").focus()

解决方案 »

  1.   

    老大说咱做DataGrid1.EditCommand += new DataGridCommandEventHandler(DataGrid1_EditCommand);private void DataGrid1_EditCommand(object source, DataGridCommandEventArgs e)
    {
        //在EditCommand事件里focus就行了,看一个那个文本框id是什么规则,知道了就好办了
        Page.RegisterStartupScript("focusScript","<script language='javascript'>document.getElementById('TextBoxID').focus()</script>");
        
    }
      

  2.   

    1.知道id后,document.getElementById(id).focus();
    2.知道DOM后,用节点来
    总之就是要找到那个需要得到焦点的元素oElem,然后用oElem.focus();
      

  3.   

    但问题是在编辑模式下,TEXTBOX的的控件是系统自动生成的,并没有ID,只有NAME属性。这我已经看了HTML代码。的确没找到。
      

  4.   

    但问题是在编辑模式下,TEXTBOX的的控件是系统自动生成的,并没有ID,只有NAME属性。这我已经看了HTML代码。的确没找到。
    你可以在代码里面加个ID吧。
      

  5.   

    Attributes.Add("id", "textbox");
    不知道是否可行。
      

  6.   

    自己顶一下吧,把代码贴出来,已经解决问题了
      /// <summary>
      /// 重载这个方法,用于在重新绑定DataGrid时(必须保证在DataGrid的TextBox列已经创建好了,所以必须在这个事件才能获取到已经创建好了的TextBox对象)\
      /// 然后查找到TextBox对象,BoundColumn列默认是没有给属性ID赋值的,所以我们手动把TextBox对象的Client作为ID赋予TextBox对象的属性ID.
      /// </summary>
      /// <param name="e"></param>
      protected override void OnPreRender(EventArgs e)
      {
       base.OnPreRender (e);
       foreach(Control ctl in this.DataGrid1.Items[0].Controls) 
       {
        foreach(Control subCtl in ctl.Controls)
        {
         if (subCtl.ToString() == "System.Web.UI.WebControls.TextBox")
         {
          System.Web.UI.WebControls.TextBox txb = (System.Web.UI.WebControls.TextBox )subCtl;
          txb.ID = txb.ClientID;
          Page.RegisterStartupScript("" ,string.Format("<script language='javascript'>document.all[\"{0}\"].focus();</script>",txb.ClientID ));     }
         Response.Write(subCtl.ID + "<br>");
        }
       }