asp.net GridView 控件增加行单击事件

点击一行,把行的信息同步到textbox里面去,开始做了使用GridView1_SelectedIndexChanging的方法完成。现在要用GridView1_RowD... 点击一行,把行的信息同步到textbox里面去,开始做了使用GridView1_SelectedIndexChanging的方法完成。现在要用GridView1_RowDataBound来做,同步的函数写好了,求教怎么写
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//这里要怎么写
}

}
展开
 我来答
alexlinhuifeng
推荐于2017-12-16
知道答主
回答量:10
采纳率:0%
帮助的人:4万
展开全部
GridView1_SelectedIndexChanging 是翻页的操作跟row的事件无关

GridView1_RowDataBound 是行绑定事件

1.
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onclick", "alert('a');");//alert('a');可以换成自己的方法

}
(这个是照你的逻辑写下来的,但是不推荐)
2.你可以在gv中增加一个按钮列,给这个列添加一个commond 命令行事件中添加 把当前行数据同步到textbox中的操作(个人感觉这种办法更简单,明了)
追问
你说的第二种其实和GridView1_SelectedIndexChanging 这个方法是一样的,我用了,现在是要鼠标放到那一行点击下就能把数据绑定到textbox上去,因为我以前是用了后台的绑定呢,所以不想换成js的,但是用后台的那个绑定好像不行,是不是一定要用js的绑定呢
追答
GridView1_RowDataBound是在你gv.databind()之后执行的,无法响应你后续的操作,只有为当前行添加事件,触发事件才可以
碧血玉叶花
2016-02-09 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1725万
展开全部
完整例子如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.BindList();
}
}

//这个函数是为GridView绑定数据的,具体数据,你自己从数据库中读
private void BindList()
{
DataTable table = new DataTable();
table.Columns.Add("userName", Type.GetType("System.String"));
table.Columns.Add("userSex", Type.GetType("System.String"));
for (int i = 0; i < 10; i++)
{
DataRow row = table.NewRow();
row[0] = "用户" + i.ToString();
row[1] = i % 2 == 0 ? "男" : "女";
table.Rows.Add(row);
}
this.GridView1.DataSource = table;
this.GridView1.DataBind();

}
//这个函数是关键,当数据行绑定后发生
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//下面三句代码可以实现你的效果,如果不合适,自己可以比照着修改一下。
string cellvalue = e.Row.Cells[0].Text;
string js = string.Format("alert(\"{0}\");", cellvalue);
e.Row.Attributes.Add("onclick", js);

//下面两句代码是添加鼠标效果,可以省略,当鼠标移动到行上时,变颜色
e.Row.Attributes.Add("onmouseover", "currentcolor=this.style.backgroundColor;this.style.backgroundColor='#ccddff',this.style.fontWeight='Bold';");
//当鼠标离开的时候 将背景颜色还原的以前的颜色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=currentcolor,this.style.fontWeight='';");
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wym3587
2012-10-24 · TA获得超过385个赞
知道小有建树答主
回答量:499
采纳率:50%
帮助的人:111万
展开全部
用JS操作啊,多简单啊。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式