在GridView中的RowDataBound方法中双击属性一个使用Session传值的弊端
protected void gvTrainClassInfo_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//设置行颜色
e.Row.Attributes.Add("onmouseover", "c=this.style.backgroundColor;this.style.backgroundColor='lightblue'");
//添加自定义属性,当鼠标移走时还原该行的背景色
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=c");
string trainID = e.Row.Cells[1].Text.ToString().Trim();
//Session["trainID"] = trainID;
e.Row.Attributes.Add("ondblclick", "window.location.href='TrainPersonAdd.aspx?trainID=" + trainID + "'");
}
}
这是一个很常用的双击效果
若是使用Session["trainID"] = trainID;传值的话,因为是在RowDataBound事件中,所以在页面加载时就已经执行,
这样就会造成Session里面的值是最后一行的数据的值,这就与事实不符了,双击任何一行传入的参数总是最后一行的信息