如何在DATAGRID中,点编辑按钮,文本框自动获得焦点,100分在线等,马上结贴 找到id即可document.getElementById("TextBoxID").focus() 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 老大说咱做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>"); } 1.知道id后,document.getElementById(id).focus();2.知道DOM后,用节点来总之就是要找到那个需要得到焦点的元素oElem,然后用oElem.focus(); 但问题是在编辑模式下,TEXTBOX的的控件是系统自动生成的,并没有ID,只有NAME属性。这我已经看了HTML代码。的确没找到。 但问题是在编辑模式下,TEXTBOX的的控件是系统自动生成的,并没有ID,只有NAME属性。这我已经看了HTML代码。的确没找到。你可以在代码里面加个ID吧。 Attributes.Add("id", "textbox");不知道是否可行。 自己顶一下吧,把代码贴出来,已经解决问题了 /// <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>"); } } 关于一个中奖滚动的js【找了半天都没找出原因】 jQuery 动画 求一段JS代码分离 textarea 中如何显示HTML代码 自动按比例缩小、自动切换显示图片问题 iframe添加元素问题 求教关于js的swicth判断用法 请问怎样利用radio显隐象文本框那样的控件 怎么把url的查询串转为json? iframe点击在另一iframe中打开网页的问题 图片缩小以后不清晰的问题.在线等待. 用parent.document.getElementById("ID").innerHTML会碰到 拒绝访问
{
//在EditCommand事件里focus就行了,看一个那个文本框id是什么规则,知道了就好办了
Page.RegisterStartupScript("focusScript","<script language='javascript'>document.getElementById('TextBoxID').focus()</script>");
}
2.知道DOM后,用节点来
总之就是要找到那个需要得到焦点的元素oElem,然后用oElem.focus();
你可以在代码里面加个ID吧。
不知道是否可行。
/// <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>");
}
}