- 积分
- 0
- 在线时间
- 16 小时
- 主题
- 4
- 注册时间
- 2015-8-7
- 帖子
- 26
- 最后登录
- 2015-9-19
- 帖子
- 26
- 软币
- 182
- 在线时间
- 16 小时
- 注册时间
- 2015-8-7
|
1、在选择(SelectedIndexChanged)事件中使用
//获得被选择行的TextBox1
protected void gv1_SelectedIndexChanged(object sender, EventArgs e)
{
//Control c = this.gv1.Rows[this.gv1.SelectedIndex].FindControl("TextBox1");
//TextBox tb = (TextBox)c;
//tb.Text = "TextBox";
TextBox tb = (TextBox)this.gv1.Rows[this.gv1.SelectedIndex].FindControl("TextBox1");
tb.Text = "hello";
}
2、在编辑行(RowEditing)事件中使用
//编辑行时,找到TextBox1
protected void gv1_RowEditing(object sender, GridViewEditEventArgs e)
{
//设置要编辑行的索引
gv1.EditIndex = e.NewEditIndex;
GridViewBind();
TextBox tb = (TextBox)this.gv1.Rows[e.NewEditIndex].FindControl("TextBox1");
Response.Write(tb.Text);
}
3、在取消编辑行(RowCancelingEdit)事件中使用
//取消编辑时,找到TextBox1
protected void gv1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
TextBox tb = (TextBox)this.gv1.Rows[e.RowIndex].FindControl("TextBox1");
Response.Write(tb.Text);
gv1.EditIndex = -1;
GridViewBind();
}
4、在行绑定(RowDataBound)事件中使用
//获得行数据绑定中的TextBox1
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{
// 对于在RowDataBound中Find,可以用if (e.Row.RowType == DataControlRowType.DataRow)来限制Find的范围,因为Find默认是在HeaderTemplate中找,如果不限定范围,在HeaderTemplate中找不到,自然就返回null,然后就出错了,DataControlRowType枚举中的DataRow确定是数据行.
//if (e.Row.RowType == DataControlRowType.DataRow)
//{
// TextBox tb = (TextBox)e.Row.FindControl("TextBox1");
// tb.Text = "databind";
//}
//如果在DataGrid的页眉和页脚:
//if (e.Row.RowType == DataControlRowType.Header)
//{
// TextBox tbheader = (TextBox)e.Row.FindControl("txtHeader");
// tbheader.Text = "Head";
//}
((TextBox)this.gv1.Controls[0].Controls[0].FindControl("txtHeader")).Text = "Head";
if (e.Row.RowType == DataControlRowType.Footer)
{
TextBox tbfooter = (TextBox)e.Row.FindControl("txtFooter");
tbfooter.Text = "Footer";
}
}
5、在行命令(RowCommand)事件中使用
//行命令时间中找到TextBox1
//如果使用GridView默认的模式,e.CommandArgument自动棒定为该行的Index,这时候只要指定gridview1.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("xxx")就可以了,但是如果转化为Template,e.CommandArgument并不会自动绑定任何值,需要手动绑定,可以在<ItemTemplate></ItemTemplate>手动写CommandArgument="<%# ((GridViewRow) Container).RowIndex %>",把这个行的 Index绑定绑定到该e.CommandArgument就可以了.
protected void gv1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName.ToLower() == "change")
{
TextBox tb = (TextBox)this.gv1.Rows[Convert.ToInt32(e.CommandArgument)].FindControl("TextBox1");
Response.Write(tb.Text);
}
}
其他事件中的使用,和上面列举的类似
|
评分
-
查看全部评分
|