asp.net下
DataGrid 点编辑后,怎么让这行的第一个文本框获得焦点?
急, 解决200分相送!!!!
DataGrid 点编辑后,怎么让这行的第一个文本框获得焦点?
急, 解决200分相送!!!!
解决方案 »
- 这种效果的.NET安装包是如何制作的,求详解...
- asp.net 把3333333写成3,333,333
- 母板页如果遍历当前页面里的控件?
- 请问session对象可以存放类的对象吗?
- 在其他机器安装我写的程序,出现的问题
- 关于Request.Form的困惑
- 无法显示XML页 是怎么回事啊 IIS应该怎样配置才好啊
- 请问现在很多ASP网站是用ASP。NET编的吗!还是用ASP呢!我现在也搞不清楚了 !
- 在一个页面中有多个CheckboxList控件,只有一个提交按钮,请问如何得到这些CheckBoxList的选定值
- 50分求 关于变量返回值显示问题。
- 这样的代码有什么不对吗?
- 关于子页面也父页面的问题<挺简单的> 在线等 一看到结果就给分
m_1=(TextBox)e.Item.Cells[2].Controls[0];
m_1.Width=Unit.Pixel(70);
//m_1.TabIndex=1;
//Response.Write("<script language='javascript'>javascript:document.Form1.DataGrid1.m_1.focus();</script>");
//Page.RegisterClientScriptBlock("getfocus","<script language=javascript>function getfocus(){"+ m_1.ClientID +".focus(); };</script>");
上面两个方法好像都不可以,说没有这个控件.
谁帮我看哪里写错了,谢谢了
{
string s="<SCRIPT language=javascript>document.getElementById('" + ctrl.ID + "').focus() </SCRIPT>";
RegisterStartupScript("focus",s);
}
m_1=(TextBox)e.Item.Cells[2].Controls[0];
是不是
SetFocus(m_1);
写在DATAGRID的哪个事件里
就可以了呢?
使用RegisterStartupScript 注册脚本,因为RegisterClientScript脚本注册时页面控件对象还没生成
使用你上面的那段程序就行了
m_1=(TextBox)e.Item.Cells[2].Controls[0];
Page.RegisterStartupScript ("getfocus",
"<script language=javascript>"+ m_1.ClientID +".focus();</script>");
执行m_1=(TextBox)e.Item.Cells[2].Controls[0];
时不报错,
private void DataGrid1_EditCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.DataGrid1.EditItemIndex=e.Item.ItemIndex;
DataGridLoad(); TextBox m_1;
m_1=(TextBox)e.Item.Cells[3].Controls[0];
Page.RegisterStartupScript ("getfocus",
"<script language=javascript>"+ m_1.ClientID +".focus();</script>");
DataGridLoad();
}
用this.focus()这个怎么用, 能说详细点吗?
这个 e 只能得到 Label ,没有 TextBox
--------------
可能是因为EditCommand事件触发时还没有重新生成datagrid,你可以这样做:
public class WebForm1 : System.Web.UI.Page
{
private DatagridItem item;//用来存放点击的时那一行的编辑事件
private void DataGrid1_EditCommand(object source,
System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
item=e.Item;//保存触发事件的那一行
DataGridLoad();
}
protected override void CreateChildControls()//重载CreateChildControls函数
{
base.CreateChildControls ();
TextBox m_1;
m_1=(TextBox)item.Cells[3].Controls[0];
Page.RegisterStartupScript ("getfocus",
"<script language=javascript>"+ m_1.ClientID +".focus();</script>");
} }
Source Error:
Line 102: base.CreateChildControls ();
Line 103: TextBox m_1=new TextBox();
Line 104: m_1=(TextBox)item.Cells[3].Controls[0];
Line 105: Page.RegisterStartupScript ("getfocus",
Source File: testgrid.aspx.cs Line: 104
m_1=(TextBox)item.Cells[3].Controls[1];
加断点,在命令窗口输入:(TextBox)item.Cells[3].Controls.Count 看看共有几个Control,看看每个Control的类型,在强制类型转换。