Private Sub SetFocus(ByVal controlToFocus As Control)        Dim scriptFunction As New StringBuilder
        Dim scriptClientId As String        scriptClientId = controlToFocus.ClientID        scriptFunction.Append("<script language='javascript'>")
        scriptFunction.Append("document.getElementById('" & scriptClientId & "').focus();")
        scriptFunction.Append("</script>")        RegisterStartupScript("focus", scriptFunction.ToString())    End Sub

解决方案 »

  1.   

    用javascript脚本document.all("服务端控件的ID").focus();
      

  2.   

    请看我的这篇文章,希望对你有帮助:                                
                           通过设置焦点来定位页面
    对于触发TextBox的TextChanged事件后焦点的定位问题,我的处理方法如下:
    private void txt1_TextChanged(object sender,System.EventArgs e)
    {
    …….
    string strJava=”<script language=’javascript’>document.frm1[‘txt2’].focus()</script>”;
    Page.RegisterStartupScript(“focus”,strJava);
    }
    要注意的是,使用Page.RegisterStartupScript的时候,不可以启用页面的智能导航属性;由于在触发textchanged后,页面有刷新,所以上面的指令也不可以用Page.RegisterClientScript来代替;
    通过研究服务器控件在客户端的表现形式,我们可以发现:
    对于一般的服务器控件,它的ID在反映到客户端时,它的解析方式和普通的HTML控件是一样的,都只是控件的ID本身,我们可以直接通过它的ID 来获取该控件;
    对于自定义的用户控件,反映到客户端时,被浏览器解析成如下的形式:
    用户控件名称+‘1’+下划线+服务器控件名称 (1表示该服务器控件在页面序号)
    如:UpdateAwb1_txtBookingNO
    如果服务器控件里面还嵌套服务器控件,比如DataGrid,其形式如下:
    用户控件名称+‘1’+下划线+服务器控件名称+ctl+标记号+嵌套控件名称;
    如:UpdateAwb1_dgrdAWBItem__ctl2_txtPCS
    如果是DataGrid,对于标记号,我们还需要通过程序来进行简单的处理,因为每增加或删除一行,相应的标记号就会产生+1或-1的变化,控件标记号=当前行的ItemIndex+2.
      

  3.   

    用javascript 脚本 document.all("控件id").focus();
      

  4.   

    用javascript脚本if(form1.txtEvertID.value.length<1)
    {
    alert('对不起,请填写案件序号');
    form1.txtEvertID.focus();
    return false;
    }
      

  5.   

    上面的总结这一点修改一下:
    用户控件名称+‘1’+下划线+服务器控件名称+两个下划线+ctl+标记号+嵌套控件名称;
    如:UpdateAwb1_dgrdAWBItem__ctl2_txtPCS