求助:GridView.RowDataBound 事件

来源:百度知道 编辑:UC知道 时间:2024/09/22 07:29:44
GridView绑定后 获得一行值过多用了省略

当鼠标点到那一行时 页面上显示当行所有值 在GridView.RowDataBound事件里要怎么写???

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton btn = (LinkButton)e.Row.Cells[2].Controls[0];
if (btn.Text.Length >= 30)
{
btn.Text = btn.Text.Substring(0, 28) + "...";
}
Net.BLL.VWGovInfo vwgovinfo = new Net.BLL.VWGovInfo();
Net.Entity.VW_GovInfo entity = new Net.Entity.VW_GovInfo();
int G_id = Int32.Parse(GridView1.DataKeys[e.Row.RowIndex].ToString()); // 索引超出范围。必须为非负值并小于集合大小。
entity = vwgovinfo.GetEntity(G_id);
e.Row.Cells[2].ToolTip = entity.G_Title;
}
}

以上是我写的 显示那一步就开始错误了!!

请高手指点!!!!
GridView绑定
private void bingtoItype1

这里的e实际上是一个事件参数,当你点哪行e就是哪行,可以用RowIndex属性来取得该行的索引,而DataKeys是GridView的主键,可以使用DataKeys[行号]的方式取得,它返回一个DataKey对象,然后就可以用DataKey.Value得到该行的主键值。
但是应该注意,在将数据源绑定到GridView上时,应该指定它的DataKeyField属性,才能正常使用。
例如:
GridView.DataKeyFields=new string[]{"id"};
“id”就是表中的主键列名

你没有设置主键,所以会报错